{"id":"c3945190f341d2134fd8cfddcdca61f0","_format":"hh-sol-build-info-1","solcVersion":"0.8.15","solcLongVersion":"0.8.15+commit.e14f2714","input":{"language":"Solidity","sources":{"@connext/interfaces/core/IConnext.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.0;\n\nimport {ExecuteArgs, TransferInfo, DestinationTransferStatus} from \"../libraries/LibConnextStorage.sol\";\nimport {TokenId} from \"../libraries/TokenId.sol\";\n\ninterface IConnext {\n\n  // ============ BRIDGE ==============\n\n  function xcall(\n    uint32 _destination,\n    address _to,\n    address _asset,\n    address _delegate,\n    uint256 _amount,\n    uint256 _slippage,\n    bytes calldata _callData\n  ) external payable returns (bytes32);\n\n  function xcall(\n    uint32 _destination,\n    address _to,\n    address _asset,\n    address _delegate,\n    uint256 _amount,\n    uint256 _slippage,\n    bytes calldata _callData,\n    uint256 _relayerFee\n  ) external returns (bytes32);\n\n  function xcallIntoLocal(\n    uint32 _destination,\n    address _to,\n    address _asset,\n    address _delegate,\n    uint256 _amount,\n    uint256 _slippage,\n    bytes calldata _callData\n  ) external payable returns (bytes32);\n\n  function execute(ExecuteArgs calldata _args) external returns (bytes32 transferId);\n\n  function forceUpdateSlippage(TransferInfo calldata _params, uint256 _slippage) external;\n\n  function forceReceiveLocal(TransferInfo calldata _params) external;\n\n  function bumpTransfer(bytes32 _transferId) external payable;\n\n  function routedTransfers(bytes32 _transferId) external view returns (address[] memory);\n\n  function transferStatus(bytes32 _transferId) external view returns (DestinationTransferStatus);\n\n  function remote(uint32 _domain) external view returns (address);\n\n  function domain() external view returns (uint256);\n\n  function nonce() external view returns (uint256);\n\n  function approvedSequencers(address _sequencer) external view returns (bool);\n\n  function xAppConnectionManager() external view returns (address);\n\n  // ============ ROUTERS ==============\n\n  function LIQUIDITY_FEE_NUMERATOR() external view returns (uint256);\n\n  function LIQUIDITY_FEE_DENOMINATOR() external view returns (uint256);\n\n  function getRouterApproval(address _router) external view returns (bool);\n\n  function getRouterRecipient(address _router) external view returns (address);\n\n  function getRouterOwner(address _router) external view returns (address);\n\n  function getProposedRouterOwner(address _router) external view returns (address);\n\n  function getProposedRouterOwnerTimestamp(address _router) external view returns (uint256);\n\n  function maxRoutersPerTransfer() external view returns (uint256);\n\n  function routerBalances(address _router, address _asset) external view returns (uint256);\n\n  function getRouterApprovalForPortal(address _router) external view returns (bool);\n\n  function initializeRouter(address _owner, address _recipient) external;\n\n  function setRouterRecipient(address _router, address _recipient) external;\n\n  function proposeRouterOwner(address _router, address _proposed) external;\n\n  function acceptProposedRouterOwner(address _router) external;\n\n  function addRouterLiquidityFor(\n    uint256 _amount,\n    address _local,\n    address _router\n  ) external payable;\n\n  function addRouterLiquidity(uint256 _amount, address _local) external payable;\n\n  function removeRouterLiquidityFor(\n    TokenId memory _canonical,\n    uint256 _amount,\n    address payable _to,\n    address _router\n  ) external;\n\n  function removeRouterLiquidity(TokenId memory _canonical, uint256 _amount, address payable _to) external;\n\n  // ============ TOKEN_FACET ==============\n  function adoptedToCanonical(address _adopted) external view returns (TokenId memory);\n\n  function approvedAssets(TokenId calldata _canonical) external view returns (bool);\n}\n"},"@connext/interfaces/libraries/LibConnextStorage.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.0;\n\n/**\n * @notice Enum representing status of destination transfer\n * @dev Status is only assigned on the destination domain, will always be \"none\" for the\n * origin domains\n * @return uint - Index of value in enum\n */\nenum DestinationTransferStatus {\n  None, // 0\n  Reconciled, // 1\n  Executed, // 2\n  Completed // 3 - executed + reconciled\n}\n\n/**\n * @notice These are the parameters that will remain constant between the\n * two chains. They are supplied on `xcall` and should be asserted on `execute`\n * @property to - The account that receives funds, in the event of a crosschain call,\n * will receive funds if the call fails.\n *\n * @param originDomain - The originating domain (i.e. where `xcall` is called)\n * @param destinationDomain - The final domain (i.e. where `execute` / `reconcile` are called)\\\n * @param canonicalDomain - The canonical domain of the asset you are bridging\n * @param to - The address you are sending funds (and potentially data) to\n * @param delegate - An address who can execute txs on behalf of `to`, in addition to allowing relayers\n * @param receiveLocal - If true, will use the local asset on the destination instead of adopted.\n * @param callData - The data to execute on the receiving chain. If no crosschain call is needed, then leave empty.\n * @param slippage - Slippage user is willing to accept from original amount in expressed in BPS (i.e. if\n * a user takes 1% slippage, this is expressed as 1_000)\n * @param originSender - The msg.sender of the xcall\n * @param bridgedAmt - The amount sent over the bridge (after potential AMM on xcall)\n * @param normalizedIn - The amount sent to `xcall`, normalized to 18 decimals\n * @param nonce - The nonce on the origin domain used to ensure the transferIds are unique\n * @param canonicalId - The unique identifier of the canonical token corresponding to bridge assets\n */\nstruct TransferInfo {\n  uint32 originDomain;\n  uint32 destinationDomain;\n  uint32 canonicalDomain;\n  address to;\n  address delegate;\n  bool receiveLocal;\n  bytes callData;\n  uint256 slippage;\n  address originSender;\n  uint256 bridgedAmt;\n  uint256 normalizedIn;\n  uint256 nonce;\n  bytes32 canonicalId;\n}\n\n/**\n * @notice\n * @param params - The TransferInfo. These are consistent across sending and receiving chains.\n * @param routers - The routers who you are sending the funds on behalf of.\n * @param routerSignatures - Signatures belonging to the routers indicating permission to use funds\n * for the signed transfer ID.\n * @param sequencer - The sequencer who assigned the router path to this transfer.\n * @param sequencerSignature - Signature produced by the sequencer for path assignment accountability\n * for the path that was signed.\n */\nstruct ExecuteArgs {\n  TransferInfo params;\n  address[] routers;\n  bytes[] routerSignatures;\n  address sequencer;\n  bytes sequencerSignature;\n}"},"@connext/interfaces/libraries/TokenId.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.0;\n\n// ============= Structs =============\n\n// Tokens are identified by a TokenId:\n// domain - 4 byte chain ID of the chain from which the token originates\n// id - 32 byte identifier of the token address on the origin chain, in that chain's address format\nstruct TokenId {\n  uint32 domain;\n  bytes32 id;\n}\n"},"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.15;\n\n/**\n * @title Proxy\n * @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or\n *         if the caller is address(0), meaning that the call originated from an off-chain\n *         simulation.\n */\ncontract Proxy {\n    /**\n     * @notice The storage slot that holds the address of the implementation.\n     *         bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)\n     */\n    bytes32 internal constant IMPLEMENTATION_KEY =\n        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @notice The storage slot that holds the address of the owner.\n     *         bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)\n     */\n    bytes32 internal constant OWNER_KEY =\n        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @notice An event that is emitted each time the implementation is changed. This event is part\n     *         of the EIP-1967 specification.\n     *\n     * @param implementation The address of the implementation contract\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @notice An event that is emitted each time the owner is upgraded. This event is part of the\n     *         EIP-1967 specification.\n     *\n     * @param previousAdmin The previous owner of the contract\n     * @param newAdmin      The new owner of the contract\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @notice A modifier that reverts if not called by the owner or by address(0) to allow\n     *         eth_call to interact with this proxy without needing to use low-level storage\n     *         inspection. We assume that nobody is able to trigger calls from address(0) during\n     *         normal EVM execution.\n     */\n    modifier proxyCallIfNotAdmin() {\n        if (msg.sender == _getAdmin() || msg.sender == address(0)) {\n            _;\n        } else {\n            // This WILL halt the call frame on completion.\n            _doProxyCall();\n        }\n    }\n\n    /**\n     * @notice Sets the initial admin during contract deployment. Admin address is stored at the\n     *         EIP-1967 admin storage slot so that accidental storage collision with the\n     *         implementation is not possible.\n     *\n     * @param _admin Address of the initial contract admin. Admin as the ability to access the\n     *               transparent proxy interface.\n     */\n    constructor(address _admin) {\n        _changeAdmin(_admin);\n    }\n\n    // slither-disable-next-line locked-ether\n    receive() external payable {\n        // Proxy call by default.\n        _doProxyCall();\n    }\n\n    // slither-disable-next-line locked-ether\n    fallback() external payable {\n        // Proxy call by default.\n        _doProxyCall();\n    }\n\n    /**\n     * @notice Set the implementation contract address. The code at the given address will execute\n     *         when this contract is called.\n     *\n     * @param _implementation Address of the implementation contract.\n     */\n    function upgradeTo(address _implementation) public virtual proxyCallIfNotAdmin {\n        _setImplementation(_implementation);\n    }\n\n    /**\n     * @notice Set the implementation and call a function in a single transaction. Useful to ensure\n     *         atomic execution of initialization-based upgrades.\n     *\n     * @param _implementation Address of the implementation contract.\n     * @param _data           Calldata to delegatecall the new implementation with.\n     */\n    function upgradeToAndCall(address _implementation, bytes calldata _data)\n        public\n        payable\n        virtual\n        proxyCallIfNotAdmin\n        returns (bytes memory)\n    {\n        _setImplementation(_implementation);\n        (bool success, bytes memory returndata) = _implementation.delegatecall(_data);\n        require(success, \"Proxy: delegatecall to new implementation contract failed\");\n        return returndata;\n    }\n\n    /**\n     * @notice Changes the owner of the proxy contract. Only callable by the owner.\n     *\n     * @param _admin New owner of the proxy contract.\n     */\n    function changeAdmin(address _admin) public virtual proxyCallIfNotAdmin {\n        _changeAdmin(_admin);\n    }\n\n    /**\n     * @notice Gets the owner of the proxy contract.\n     *\n     * @return Owner address.\n     */\n    function admin() public virtual proxyCallIfNotAdmin returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @notice Queries the implementation address.\n     *\n     * @return Implementation address.\n     */\n    function implementation() public virtual proxyCallIfNotAdmin returns (address) {\n        return _getImplementation();\n    }\n\n    /**\n     * @notice Sets the implementation address.\n     *\n     * @param _implementation New implementation address.\n     */\n    function _setImplementation(address _implementation) internal {\n        assembly {\n            sstore(IMPLEMENTATION_KEY, _implementation)\n        }\n        emit Upgraded(_implementation);\n    }\n\n    /**\n     * @notice Changes the owner of the proxy contract.\n     *\n     * @param _admin New owner of the proxy contract.\n     */\n    function _changeAdmin(address _admin) internal {\n        address previous = _getAdmin();\n        assembly {\n            sstore(OWNER_KEY, _admin)\n        }\n        emit AdminChanged(previous, _admin);\n    }\n\n    /**\n     * @notice Performs the proxy call via a delegatecall.\n     */\n    function _doProxyCall() internal {\n        address impl = _getImplementation();\n        require(impl != address(0), \"Proxy: implementation not initialized\");\n\n        assembly {\n            // Copy calldata into memory at 0x0....calldatasize.\n            calldatacopy(0x0, 0x0, calldatasize())\n\n            // Perform the delegatecall, make sure to pass all available gas.\n            let success := delegatecall(gas(), impl, 0x0, calldatasize(), 0x0, 0x0)\n\n            // Copy returndata into memory at 0x0....returndatasize. Note that this *will*\n            // overwrite the calldata that we just copied into memory but that doesn't really\n            // matter because we'll be returning in a second anyway.\n            returndatacopy(0x0, 0x0, returndatasize())\n\n            // Success == 0 means a revert. We'll revert too and pass the data up.\n            if iszero(success) {\n                revert(0x0, returndatasize())\n            }\n\n            // Otherwise we'll just return and pass the data up.\n            return(0x0, returndatasize())\n        }\n    }\n\n    /**\n     * @notice Queries the implementation address.\n     *\n     * @return Implementation address.\n     */\n    function _getImplementation() internal view returns (address) {\n        address impl;\n        assembly {\n            impl := sload(IMPLEMENTATION_KEY)\n        }\n        return impl;\n    }\n\n    /**\n     * @notice Queries the owner of the proxy contract.\n     *\n     * @return Owner address.\n     */\n    function _getAdmin() internal view returns (address) {\n        address owner;\n        assembly {\n            owner := sload(OWNER_KEY)\n        }\n        return owner;\n    }\n}\n"},"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\n/**\n * @title Lib_MerkleTree\n * @author River Keefer\n */\nlibrary Lib_MerkleTree {\n    /**********************\n     * Internal Functions *\n     **********************/\n\n    /**\n     * Calculates a merkle root for a list of 32-byte leaf hashes.  WARNING: If the number\n     * of leaves passed in is not a power of two, it pads out the tree with zero hashes.\n     * If you do not know the original length of elements for the tree you are verifying, then\n     * this may allow empty leaves past _elements.length to pass a verification check down the line.\n     * Note that the _elements argument is modified, therefore it must not be used again afterwards\n     * @param _elements Array of hashes from which to generate a merkle root.\n     * @return Merkle root of the leaves, with zero hashes for non-powers-of-two (see above).\n     */\n    function getMerkleRoot(bytes32[] memory _elements) internal pure returns (bytes32) {\n        require(_elements.length > 0, \"Lib_MerkleTree: Must provide at least one leaf hash.\");\n\n        if (_elements.length == 1) {\n            return _elements[0];\n        }\n\n        uint256[16] memory defaults = [\n            0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563,\n            0x633dc4d7da7256660a892f8f1604a44b5432649cc8ec5cb3ced4c4e6ac94dd1d,\n            0x890740a8eb06ce9be422cb8da5cdafc2b58c0a5e24036c578de2a433c828ff7d,\n            0x3b8ec09e026fdc305365dfc94e189a81b38c7597b3d941c279f042e8206e0bd8,\n            0xecd50eee38e386bd62be9bedb990706951b65fe053bd9d8a521af753d139e2da,\n            0xdefff6d330bb5403f63b14f33b578274160de3a50df4efecf0e0db73bcdd3da5,\n            0x617bdd11f7c0a11f49db22f629387a12da7596f9d1704d7465177c63d88ec7d7,\n            0x292c23a9aa1d8bea7e2435e555a4a60e379a5a35f3f452bae60121073fb6eead,\n            0xe1cea92ed99acdcb045a6726b2f87107e8a61620a232cf4d7d5b5766b3952e10,\n            0x7ad66c0a68c72cb89e4fb4303841966e4062a76ab97451e3b9fb526a5ceb7f82,\n            0xe026cc5a4aed3c22a58cbd3d2ac754c9352c5436f638042dca99034e83636516,\n            0x3d04cffd8b46a874edf5cfae63077de85f849a660426697b06a829c70dd1409c,\n            0xad676aa337a485e4728a0b240d92b3ef7b3c372d06d189322bfd5f61f1e7203e,\n            0xa2fca4a49658f9fab7aa63289c91b7c7b6c832a6d0e69334ff5b0a3483d09dab,\n            0x4ebfd9cd7bca2505f7bef59cc1c12ecc708fff26ae4af19abe852afe9e20c862,\n            0x2def10d13dd169f550f578bda343d9717a138562e0093b380a1120789d53cf10\n        ];\n\n        // Reserve memory space for our hashes.\n        bytes memory buf = new bytes(64);\n\n        // We'll need to keep track of left and right siblings.\n        bytes32 leftSibling;\n        bytes32 rightSibling;\n\n        // Number of non-empty nodes at the current depth.\n        uint256 rowSize = _elements.length;\n\n        // Current depth, counting from 0 at the leaves\n        uint256 depth = 0;\n\n        // Common sub-expressions\n        uint256 halfRowSize; // rowSize / 2\n        bool rowSizeIsOdd; // rowSize % 2 == 1\n\n        while (rowSize > 1) {\n            halfRowSize = rowSize / 2;\n            rowSizeIsOdd = rowSize % 2 == 1;\n\n            for (uint256 i = 0; i < halfRowSize; i++) {\n                leftSibling = _elements[(2 * i)];\n                rightSibling = _elements[(2 * i) + 1];\n                assembly {\n                    mstore(add(buf, 32), leftSibling)\n                    mstore(add(buf, 64), rightSibling)\n                }\n\n                _elements[i] = keccak256(buf);\n            }\n\n            if (rowSizeIsOdd) {\n                leftSibling = _elements[rowSize - 1];\n                rightSibling = bytes32(defaults[depth]);\n                assembly {\n                    mstore(add(buf, 32), leftSibling)\n                    mstore(add(buf, 64), rightSibling)\n                }\n\n                _elements[halfRowSize] = keccak256(buf);\n            }\n\n            rowSize = halfRowSize + (rowSizeIsOdd ? 1 : 0);\n            depth++;\n        }\n\n        return _elements[0];\n    }\n\n    /**\n     * Verifies a merkle branch for the given leaf hash.  Assumes the original length\n     * of leaves generated is a known, correct input, and does not return true for indices\n     * extending past that index (even if _siblings would be otherwise valid.)\n     * @param _root The Merkle root to verify against.\n     * @param _leaf The leaf hash to verify inclusion of.\n     * @param _index The index in the tree of this leaf.\n     * @param _siblings Array of sibline nodes in the inclusion proof, starting from depth 0\n     * (bottom of the tree).\n     * @param _totalLeaves The total number of leaves originally passed into.\n     * @return Whether or not the merkle branch and leaf passes verification.\n     */\n    function verify(\n        bytes32 _root,\n        bytes32 _leaf,\n        uint256 _index,\n        bytes32[] memory _siblings,\n        uint256 _totalLeaves\n    ) internal pure returns (bool) {\n        require(_totalLeaves > 0, \"Lib_MerkleTree: Total leaves must be greater than zero.\");\n\n        require(_index < _totalLeaves, \"Lib_MerkleTree: Index out of bounds.\");\n\n        require(\n            _siblings.length == _ceilLog2(_totalLeaves),\n            \"Lib_MerkleTree: Total siblings does not correctly correspond to total leaves.\"\n        );\n\n        bytes32 computedRoot = _leaf;\n\n        for (uint256 i = 0; i < _siblings.length; i++) {\n            if ((_index & 1) == 1) {\n                computedRoot = keccak256(abi.encodePacked(_siblings[i], computedRoot));\n            } else {\n                computedRoot = keccak256(abi.encodePacked(computedRoot, _siblings[i]));\n            }\n\n            _index >>= 1;\n        }\n\n        return _root == computedRoot;\n    }\n\n    /*********************\n     * Private Functions *\n     *********************/\n\n    /**\n     * Calculates the integer ceiling of the log base 2 of an input.\n     * @param _in Unsigned input to calculate the log.\n     * @return ceil(log_base_2(_in))\n     */\n    function _ceilLog2(uint256 _in) private pure returns (uint256) {\n        require(_in > 0, \"Lib_MerkleTree: Cannot compute ceil(log_2) of 0.\");\n\n        if (_in == 1) {\n            return 0;\n        }\n\n        // Find the highest set bit (will be floor(log_2)).\n        // Borrowed with <3 from https://github.com/ethereum/solidity-examples\n        uint256 val = _in;\n        uint256 highest = 0;\n        for (uint256 i = 128; i >= 1; i >>= 1) {\n            if (val & (((uint256(1) << i) - 1) << i) != 0) {\n                highest += i;\n                val >>= i;\n            }\n        }\n\n        // Increment by one if this is not a perfect logarithm.\n        if ((uint256(1) << highest) != _in) {\n            highest += 1;\n        }\n\n        return highest;\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.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/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. 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    /**\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/metatx/ERC2771ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (metatx/ERC2771Context.sol)\n\npragma solidity ^0.8.9;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Context variant with ERC2771 support.\n */\nabstract contract ERC2771ContextUpgradeable is Initializable, ContextUpgradeable {\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    address private immutable _trustedForwarder;\n\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor(address trustedForwarder) {\n        _trustedForwarder = trustedForwarder;\n    }\n\n    function isTrustedForwarder(address forwarder) public view virtual returns (bool) {\n        return forwarder == _trustedForwarder;\n    }\n\n    function _msgSender() internal view virtual override returns (address sender) {\n        if (isTrustedForwarder(msg.sender)) {\n            // The assembly code is more direct than the Solidity version using `abi.decode`.\n            /// @solidity memory-safe-assembly\n            assembly {\n                sender := shr(96, calldataload(sub(calldatasize(), 20)))\n            }\n        } else {\n            return super._msgSender();\n        }\n    }\n\n    function _msgData() internal view virtual override returns (bytes calldata) {\n        if (isTrustedForwarder(msg.sender)) {\n            return msg.data[:msg.data.length - 20];\n        } else {\n            return super._msgData();\n        }\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-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (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 * ```solidity\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\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/security/ReentrancyGuardUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)\n\npragma solidity ^0.8.0;\nimport \"../proxy/utils/Initializable.sol\";\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 ReentrancyGuardUpgradeable is Initializable {\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    function __ReentrancyGuard_init() internal onlyInitializing {\n        __ReentrancyGuard_init_unchained();\n    }\n\n    function __ReentrancyGuard_init_unchained() internal onlyInitializing {\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    /**\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/utils/AddressUpgradeable.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 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     * 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-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/interfaces/IERC5267.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5267.sol)\n\npragma solidity ^0.8.0;\n\ninterface IERC5267 {\n    /**\n     * @dev MAY be emitted to signal that the domain could have changed.\n     */\n    event EIP712DomainChanged();\n\n    /**\n     * @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n     * signature.\n     */\n    function eip712Domain()\n        external\n        view\n        returns (\n            bytes1 fields,\n            string memory name,\n            string memory version,\n            uint256 chainId,\n            address verifyingContract,\n            bytes32 salt,\n            uint256[] memory extensions\n        );\n}\n"},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/Address.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 * ```solidity\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\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) || (!Address.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/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 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"},"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/draft-EIP712.sol)\n\npragma solidity ^0.8.0;\n\n// EIP-712 is Final as of 2022-08-11. This file is deprecated.\n\nimport \"./EIP712.sol\";\n"},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Strings.sol\";\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n    enum RecoverError {\n        NoError,\n        InvalidSignature,\n        InvalidSignatureLength,\n        InvalidSignatureS,\n        InvalidSignatureV // Deprecated in v4.8\n    }\n\n    function _throwError(RecoverError error) private pure {\n        if (error == RecoverError.NoError) {\n            return; // no error: do nothing\n        } else if (error == RecoverError.InvalidSignature) {\n            revert(\"ECDSA: invalid signature\");\n        } else if (error == RecoverError.InvalidSignatureLength) {\n            revert(\"ECDSA: invalid signature length\");\n        } else if (error == RecoverError.InvalidSignatureS) {\n            revert(\"ECDSA: invalid signature 's' value\");\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature` or error string. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     *\n     * Documentation for signature generation:\n     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {\n        if (signature.length == 65) {\n            bytes32 r;\n            bytes32 s;\n            uint8 v;\n            // ecrecover takes the signature parameters, and the only way to get them\n            // currently is to use assembly.\n            /// @solidity memory-safe-assembly\n            assembly {\n                r := mload(add(signature, 0x20))\n                s := mload(add(signature, 0x40))\n                v := byte(0, mload(add(signature, 0x60)))\n            }\n            return tryRecover(hash, v, r, s);\n        } else {\n            return (address(0), RecoverError.InvalidSignatureLength);\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature`. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     */\n    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, signature);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n     *\n     * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError) {\n        bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n        uint8 v = uint8((uint256(vs) >> 255) + 27);\n        return tryRecover(hash, v, r, s);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n     *\n     * _Available since v4.2._\n     */\n    function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, r, vs);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address, RecoverError) {\n        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n        // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n        //\n        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n        // these malleable signatures as well.\n        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n            return (address(0), RecoverError.InvalidSignatureS);\n        }\n\n        // If the signature is valid (and not malleable), return the signer address\n        address signer = ecrecover(hash, v, r, s);\n        if (signer == address(0)) {\n            return (address(0), RecoverError.InvalidSignature);\n        }\n\n        return (signer, RecoverError.NoError);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     */\n    function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, v, r, s);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from a `hash`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 message) {\n        // 32 is the length in bytes of hash,\n        // enforced by the type signature above\n        /// @solidity memory-safe-assembly\n        assembly {\n            mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\")\n            mstore(0x1c, hash)\n            message := keccak256(0x00, 0x3c)\n        }\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from `s`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n\", Strings.toString(s.length), s));\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Typed Data, created from a\n     * `domainSeparator` and a `structHash`. This produces hash corresponding\n     * to the one signed with the\n     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n     * JSON-RPC method as part of EIP-712.\n     *\n     * See {recover}.\n     */\n    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 data) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            let ptr := mload(0x40)\n            mstore(ptr, \"\\x19\\x01\")\n            mstore(add(ptr, 0x02), domainSeparator)\n            mstore(add(ptr, 0x22), structHash)\n            data := keccak256(ptr, 0x42)\n        }\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Data with intended validator, created from a\n     * `validator` and `data` according to the version 0 of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19\\x00\", validator, data));\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/EIP712.sol)\n\npragma solidity ^0.8.8;\n\nimport \"./ECDSA.sol\";\nimport \"../ShortStrings.sol\";\nimport \"../../interfaces/IERC5267.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n * they need in their contracts using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n * separator of the implementation contract. This will cause the `_domainSeparatorV4` function to always rebuild the\n * separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\n *\n * _Available since v3.4._\n *\n * @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment\n */\nabstract contract EIP712 is IERC5267 {\n    using ShortStrings for *;\n\n    bytes32 private constant _TYPE_HASH =\n        keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\");\n\n    // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to\n    // invalidate the cached domain separator if the chain id changes.\n    bytes32 private immutable _cachedDomainSeparator;\n    uint256 private immutable _cachedChainId;\n    address private immutable _cachedThis;\n\n    bytes32 private immutable _hashedName;\n    bytes32 private immutable _hashedVersion;\n\n    ShortString private immutable _name;\n    ShortString private immutable _version;\n    string private _nameFallback;\n    string private _versionFallback;\n\n    /**\n     * @dev Initializes the domain separator and parameter caches.\n     *\n     * The meaning of `name` and `version` is specified in\n     * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n     *\n     * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n     * - `version`: the current major version of the signing domain.\n     *\n     * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n     * contract upgrade].\n     */\n    constructor(string memory name, string memory version) {\n        _name = name.toShortStringWithFallback(_nameFallback);\n        _version = version.toShortStringWithFallback(_versionFallback);\n        _hashedName = keccak256(bytes(name));\n        _hashedVersion = keccak256(bytes(version));\n\n        _cachedChainId = block.chainid;\n        _cachedDomainSeparator = _buildDomainSeparator();\n        _cachedThis = address(this);\n    }\n\n    /**\n     * @dev Returns the domain separator for the current chain.\n     */\n    function _domainSeparatorV4() internal view returns (bytes32) {\n        if (address(this) == _cachedThis && block.chainid == _cachedChainId) {\n            return _cachedDomainSeparator;\n        } else {\n            return _buildDomainSeparator();\n        }\n    }\n\n    function _buildDomainSeparator() private view returns (bytes32) {\n        return keccak256(abi.encode(_TYPE_HASH, _hashedName, _hashedVersion, block.chainid, address(this)));\n    }\n\n    /**\n     * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n     * function returns the hash of the fully encoded EIP712 message for this domain.\n     *\n     * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n     *\n     * ```solidity\n     * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     *     keccak256(\"Mail(address to,string contents)\"),\n     *     mailTo,\n     *     keccak256(bytes(mailContents))\n     * )));\n     * address signer = ECDSA.recover(digest, signature);\n     * ```\n     */\n    function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n        return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash);\n    }\n\n    /**\n     * @dev See {EIP-5267}.\n     *\n     * _Available since v4.9._\n     */\n    function eip712Domain()\n        public\n        view\n        virtual\n        override\n        returns (\n            bytes1 fields,\n            string memory name,\n            string memory version,\n            uint256 chainId,\n            address verifyingContract,\n            bytes32 salt,\n            uint256[] memory extensions\n        )\n    {\n        return (\n            hex\"0f\", // 01111\n            _name.toStringWithFallback(_nameFallback),\n            _version.toStringWithFallback(_versionFallback),\n            block.chainid,\n            address(this),\n            bytes32(0),\n            new uint256[](0)\n        );\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/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/ShortStrings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/ShortStrings.sol)\n\npragma solidity ^0.8.8;\n\nimport \"./StorageSlot.sol\";\n\n// | string  | 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA   |\n// | length  | 0x                                                              BB |\ntype ShortString is bytes32;\n\n/**\n * @dev This library provides functions to convert short memory strings\n * into a `ShortString` type that can be used as an immutable variable.\n *\n * Strings of arbitrary length can be optimized using this library if\n * they are short enough (up to 31 bytes) by packing them with their\n * length (1 byte) in a single EVM word (32 bytes). Additionally, a\n * fallback mechanism can be used for every other case.\n *\n * Usage example:\n *\n * ```solidity\n * contract Named {\n *     using ShortStrings for *;\n *\n *     ShortString private immutable _name;\n *     string private _nameFallback;\n *\n *     constructor(string memory contractName) {\n *         _name = contractName.toShortStringWithFallback(_nameFallback);\n *     }\n *\n *     function name() external view returns (string memory) {\n *         return _name.toStringWithFallback(_nameFallback);\n *     }\n * }\n * ```\n */\nlibrary ShortStrings {\n    // Used as an identifier for strings longer than 31 bytes.\n    bytes32 private constant _FALLBACK_SENTINEL = 0x00000000000000000000000000000000000000000000000000000000000000FF;\n\n    error StringTooLong(string str);\n    error InvalidShortString();\n\n    /**\n     * @dev Encode a string of at most 31 chars into a `ShortString`.\n     *\n     * This will trigger a `StringTooLong` error is the input string is too long.\n     */\n    function toShortString(string memory str) internal pure returns (ShortString) {\n        bytes memory bstr = bytes(str);\n        if (bstr.length > 31) {\n            revert StringTooLong(str);\n        }\n        return ShortString.wrap(bytes32(uint256(bytes32(bstr)) | bstr.length));\n    }\n\n    /**\n     * @dev Decode a `ShortString` back to a \"normal\" string.\n     */\n    function toString(ShortString sstr) internal pure returns (string memory) {\n        uint256 len = byteLength(sstr);\n        // using `new string(len)` would work locally but is not memory safe.\n        string memory str = new string(32);\n        /// @solidity memory-safe-assembly\n        assembly {\n            mstore(str, len)\n            mstore(add(str, 0x20), sstr)\n        }\n        return str;\n    }\n\n    /**\n     * @dev Return the length of a `ShortString`.\n     */\n    function byteLength(ShortString sstr) internal pure returns (uint256) {\n        uint256 result = uint256(ShortString.unwrap(sstr)) & 0xFF;\n        if (result > 31) {\n            revert InvalidShortString();\n        }\n        return result;\n    }\n\n    /**\n     * @dev Encode a string into a `ShortString`, or write it to storage if it is too long.\n     */\n    function toShortStringWithFallback(string memory value, string storage store) internal returns (ShortString) {\n        if (bytes(value).length < 32) {\n            return toShortString(value);\n        } else {\n            StorageSlot.getStringSlot(store).value = value;\n            return ShortString.wrap(_FALLBACK_SENTINEL);\n        }\n    }\n\n    /**\n     * @dev Decode a string that was encoded to `ShortString` or written to storage using {setWithFallback}.\n     */\n    function toStringWithFallback(ShortString value, string storage store) internal pure returns (string memory) {\n        if (ShortString.unwrap(value) != _FALLBACK_SENTINEL) {\n            return toString(value);\n        } else {\n            return store;\n        }\n    }\n\n    /**\n     * @dev Return the length of a string that was encoded to `ShortString` or written to storage using {setWithFallback}.\n     *\n     * WARNING: This will return the \"byte length\" of the string. This may not reflect the actual length in terms of\n     * actual characters as the UTF-8 encoding of a single character can span over multiple bytes.\n     */\n    function byteLengthWithFallback(ShortString value, string storage store) internal view returns (uint256) {\n        if (ShortString.unwrap(value) != _FALLBACK_SENTINEL) {\n            return byteLength(value);\n        } else {\n            return bytes(store).length;\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\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 * ```solidity\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`, `uint256`._\n * _Available since v4.9 for `string`, `bytes`._\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    struct StringSlot {\n        string value;\n    }\n\n    struct BytesSlot {\n        bytes 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        /// @solidity memory-safe-assembly\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        /// @solidity memory-safe-assembly\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        /// @solidity memory-safe-assembly\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        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` with member `value` located at `slot`.\n     */\n    function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n     */\n    function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n     */\n    function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n     */\n    function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\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"},"@thirdweb-dev/contracts/forwarder/Forwarder.sol":{"content":"// SPDX-License-Identifier: Apache 2.0\npragma solidity ^0.8.0;\n\n/// @author thirdweb\n\n//   $$\\     $$\\       $$\\                 $$\\                         $$\\\n//   $$ |    $$ |      \\__|                $$ |                        $$ |\n// $$$$$$\\   $$$$$$$\\  $$\\  $$$$$$\\   $$$$$$$ |$$\\  $$\\  $$\\  $$$$$$\\  $$$$$$$\\\n// \\_$$  _|  $$  __$$\\ $$ |$$  __$$\\ $$  __$$ |$$ | $$ | $$ |$$  __$$\\ $$  __$$\\\n//   $$ |    $$ |  $$ |$$ |$$ |  \\__|$$ /  $$ |$$ | $$ | $$ |$$$$$$$$ |$$ |  $$ |\n//   $$ |$$\\ $$ |  $$ |$$ |$$ |      $$ |  $$ |$$ | $$ | $$ |$$   ____|$$ |  $$ |\n//   \\$$$$  |$$ |  $$ |$$ |$$ |      \\$$$$$$$ |\\$$$$$\\$$$$  |\\$$$$$$$\\ $$$$$$$  |\n//    \\____/ \\__|  \\__|\\__|\\__|       \\_______| \\_____\\____/  \\_______|\\_______/\n\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\";\n\n/*\n * @dev Minimal forwarder for GSNv2\n */\ncontract Forwarder is EIP712 {\n    using ECDSA for bytes32;\n\n    struct ForwardRequest {\n        address from;\n        address to;\n        uint256 value;\n        uint256 gas;\n        uint256 nonce;\n        bytes data;\n    }\n\n    bytes32 private constant TYPEHASH =\n        keccak256(\"ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)\");\n\n    mapping(address => uint256) private _nonces;\n\n    constructor() EIP712(\"GSNv2 Forwarder\", \"0.0.1\") {}\n\n    function getNonce(address from) public view returns (uint256) {\n        return _nonces[from];\n    }\n\n    function verify(ForwardRequest calldata req, bytes calldata signature) public view returns (bool) {\n        address signer = _hashTypedDataV4(\n            keccak256(abi.encode(TYPEHASH, req.from, req.to, req.value, req.gas, req.nonce, keccak256(req.data)))\n        ).recover(signature);\n\n        return _nonces[req.from] == req.nonce && signer == req.from;\n    }\n\n    function execute(ForwardRequest calldata req, bytes calldata signature)\n        public\n        payable\n        returns (bool, bytes memory)\n    {\n        require(verify(req, signature), \"MinimalForwarder: signature does not match request\");\n        _nonces[req.from] = req.nonce + 1;\n\n        // solhint-disable-next-line avoid-low-level-calls\n        (bool success, bytes memory result) = req.to.call{ gas: req.gas, value: req.value }(\n            abi.encodePacked(req.data, req.from)\n        );\n\n        if (!success) {\n            // Next 5 lines from https://ethereum.stackexchange.com/a/83577\n            if (result.length < 68) revert(\"Transaction reverted silently\");\n            assembly {\n                result := add(result, 0x04)\n            }\n            revert(abi.decode(result, (string)));\n        }\n        // Check gas: https://ronan.eth.link/blog/ethereum-gas-dangers/\n        assert(gasleft() > req.gas / 63);\n        return (success, result);\n    }\n}\n"},"contracts/adapters/cross-chain/ConnextCrossChainAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { ICrossChainAdapter } from \"../../interfaces/ICrossChainAdapter.sol\";\nimport { IConnext } from \"@connext/interfaces/core/IConnext.sol\";\nimport { RegistrationInfo, CrossChainMessageInfo } from \"../../ChugSplashDataTypes.sol\";\nimport { ChugSplashRegistry } from \"../../ChugSplashRegistry.sol\";\n\n/**\n * @title ConnextCrossChainAdapter\n */\ncontract ConnextCrossChainAdapter is ICrossChainAdapter {\n    address public immutable registry;\n\n    constructor(address _registry) {\n        registry = _registry;\n    }\n\n    function initiateRegistration(\n        bytes32 _orgID,\n        RegistrationInfo memory _registration,\n        CrossChainMessageInfo memory _message\n    ) external {\n        bytes memory registryCalldata = abi.encodeCall(\n            ChugSplashRegistry.finalizeRegistration,\n            (\n                _orgID,\n                _registration.owner,\n                _registration.version,\n                _registration.managerInitializerData\n            )\n        );\n\n        IConnext(_message.originEndpoint).xcall{ value: _message.relayerFee }(\n            _message.destDomainID, // _destination: Domain ID of the destination chain\n            registry, // _to: address of the target contract on the destination chain\n            address(0), // _asset: address of the token contract (this is unused)\n            msg.sender, // _delegate: address that can revert or forceLocal on destination\n            0, // _amount: amount of tokens to transfer (this is unused)\n            0, // _slippage: this is unused\n            registryCalldata // _callData: the encoded calldata to send\n        );\n    }\n}\n"},"contracts/adapters/cross-chain/LocalAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { ICrossChainAdapter } from \"../../interfaces/ICrossChainAdapter.sol\";\nimport { ChugSplashRegistry } from \"../../ChugSplashRegistry.sol\";\nimport { RegistrationInfo, CrossChainMessageInfo } from \"../../ChugSplashDataTypes.sol\";\nimport { IConnext } from \"@connext/interfaces/core/IConnext.sol\";\n\n/**\n * @title LocalAdapter\n */\ncontract LocalAdapter is ICrossChainAdapter {\n    ChugSplashRegistry public immutable registry;\n\n    constructor(ChugSplashRegistry _registry) {\n        registry = _registry;\n    }\n\n    function initiateRegistration(\n        bytes32 _orgID,\n        RegistrationInfo memory _registration,\n        CrossChainMessageInfo memory\n    ) external {\n        registry.finalizeRegistration(\n            _orgID,\n            _registration.owner,\n            _registration.version,\n            _registration.managerInitializerData\n        );\n    }\n}\n"},"contracts/adapters/DefaultAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { IProxyAdapter } from \"../interfaces/IProxyAdapter.sol\";\nimport { IProxyUpdater } from \"../interfaces/IProxyUpdater.sol\";\nimport { Proxy } from \"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\";\n\n/**\n * @title DefaultAdapter\n * @notice Adapter for the default EIP-1967 proxy used by ChugSplash.\n */\ncontract DefaultAdapter is IProxyAdapter {\n    /**\n     * @notice Address of the ProxyUpdater contract that will be set as the proxy's implementation\n    during the deployment.\n     */\n    address public immutable proxyUpdater;\n\n    /**\n     * @param _proxyUpdater Address of the ProxyUpdater contract.\n     */\n    constructor(address _proxyUpdater) {\n        require(_proxyUpdater != address(0), \"DefaultAdapter: updater cannot be address(0)\");\n        proxyUpdater = _proxyUpdater;\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function initiateUpgrade(address payable _proxy) external {\n        Proxy(_proxy).upgradeTo(proxyUpdater);\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function finalizeUpgrade(address payable _proxy, address _implementation) external {\n        Proxy(_proxy).upgradeTo(_implementation);\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function setStorage(\n        address payable _proxy,\n        bytes32 _key,\n        uint8 _offset,\n        bytes memory _value\n    ) external {\n        IProxyUpdater(_proxy).setStorage(_key, _offset, _value);\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function changeProxyAdmin(address payable _proxy, address _newAdmin) external {\n        Proxy(_proxy).changeAdmin(_newAdmin);\n    }\n}\n"},"contracts/adapters/OZTransparentAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { IProxyAdapter } from \"../interfaces/IProxyAdapter.sol\";\nimport { IProxyUpdater } from \"../interfaces/IProxyUpdater.sol\";\nimport { Proxy } from \"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\";\n\n/**\n * @title OZTransparentAdapter\n * @notice Adapter for an OpenZeppelin Transparent Upgradeable proxy.\n */\ncontract OZTransparentAdapter is IProxyAdapter {\n    /**\n     * @notice Address of the ProxyUpdater contract that will be set as the Transparent proxy's\n       implementation during the deployment.\n     */\n    address public immutable proxyUpdater;\n\n    /**\n     * @param _proxyUpdater Address of the ProxyUpdater contract.\n     */\n    constructor(address _proxyUpdater) {\n        require(_proxyUpdater != address(0), \"OZTransparentAdapter: updater cannot be address(0)\");\n        proxyUpdater = _proxyUpdater;\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function initiateUpgrade(address payable _proxy) external {\n        Proxy(_proxy).upgradeTo(proxyUpdater);\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function finalizeUpgrade(address payable _proxy, address _implementation) external {\n        Proxy(_proxy).upgradeTo(_implementation);\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function setStorage(\n        address payable _proxy,\n        bytes32 _key,\n        uint8 _offset,\n        bytes memory _value\n    ) external {\n        require(_proxy.code.length > 0, \"OZTransparentAdapter: invalid proxy\");\n\n        // We perform a low-level call here to avoid OpenZeppelin's `TransparentUpgradeableProxy`\n        // reverting on successful calls, which is likely occurring because its `upgradeToAndCall`\n        // function doesn't return any data.\n        (bool success, ) = _proxy.call(\n            abi.encodeCall(\n                Proxy.upgradeToAndCall,\n                (proxyUpdater, abi.encodeCall(IProxyUpdater.setStorage, (_key, _offset, _value)))\n            )\n        );\n        require(success, \"OZTransparentAdapter: call to set storage failed\");\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function changeProxyAdmin(address payable _proxy, address _newAdmin) external {\n        Proxy(_proxy).changeAdmin(_newAdmin);\n    }\n}\n"},"contracts/adapters/OZUUPSAccessControlAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { OZUUPSBaseAdapter } from \"./OZUUPSBaseAdapter.sol\";\nimport { AccessControl } from \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport { IProxyAdapter } from \"../interfaces/IProxyAdapter.sol\";\n\n/**\n * @title OZUUPSAccessControlAdapter\n * @notice Proxy adapter for an OpenZeppelin UUPS proxy that uses AccessControl for its ownership\n   mechanism.\n */\ncontract OZUUPSAccessControlAdapter is OZUUPSBaseAdapter {\n    /**\n     * @param _proxyUpdater Address of the ProxyUpdater contract.\n     */\n    constructor(address _proxyUpdater) OZUUPSBaseAdapter(_proxyUpdater) {}\n\n    /**\n     * Transfers ownership of the proxy using AccessControl.\n     * @inheritdoc IProxyAdapter\n     */\n    function changeProxyAdmin(address payable _proxy, address _newAdmin) external override {\n        AccessControl(_proxy).grantRole(0x00, _newAdmin);\n    }\n}\n"},"contracts/adapters/OZUUPSBaseAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { IProxyAdapter } from \"../interfaces/IProxyAdapter.sol\";\nimport { OZUUPSUpdater } from \"../updaters/OZUUPSUpdater.sol\";\nimport { Proxy } from \"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\";\n\n/**\n * @title OZUUPSBaseAdapter\n * @notice An abstract proxy adapter for OpenZeppelin UUPS Upgradeable proxies. Child contracts must\n           implement their own access control mechanism for the `changeProxyAdmin` function since\n           UUPS proxies do not have a standard access control mechanism like Transparent proxies.\n */\nabstract contract OZUUPSBaseAdapter is IProxyAdapter {\n    /**\n     * @notice Address of the ProxyUpdater contract that will be set as the OpenZeppelin UUPS\n       proxy's implementation during the deployment.\n     */\n    address public immutable proxyUpdater;\n\n    /**\n     * @param _proxyUpdater Address of the ProxyUpdater contract.\n     */\n    constructor(address _proxyUpdater) {\n        require(_proxyUpdater != address(0), \"OZUUPSBaseAdapter: updater cannot be address(0)\");\n        proxyUpdater = _proxyUpdater;\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function initiateUpgrade(address payable _proxy) external {\n        OZUUPSUpdater(_proxy).upgradeTo(proxyUpdater);\n        OZUUPSUpdater(_proxy).initiate();\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function finalizeUpgrade(address payable _proxy, address _implementation) external {\n        OZUUPSUpdater(_proxy).complete(_implementation);\n    }\n\n    /**\n     * @inheritdoc IProxyAdapter\n     */\n    function setStorage(\n        address payable _proxy,\n        bytes32 _key,\n        uint8 _offset,\n        bytes memory _value\n    ) external {\n        OZUUPSUpdater(_proxy).setStorage(_key, _offset, _value);\n    }\n\n    /**\n        Must be overridden in child contracts in order to transfer ownership using the UUPS proxy's\n        current acccess control mechanism (e.g. `Ownable.transferOwnership`).\n     * @inheritdoc IProxyAdapter\n     */\n    function changeProxyAdmin(address payable _proxy, address _newAdmin) external virtual;\n}\n"},"contracts/adapters/OZUUPSOwnableAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { OZUUPSBaseAdapter } from \"./OZUUPSBaseAdapter.sol\";\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { IProxyAdapter } from \"../interfaces/IProxyAdapter.sol\";\n\n/**\n * @title OZUUPSOwnableAdapter\n * @notice Proxy adapter for an OpenZeppelin UUPS proxy that uses OwnableUpgradeable\n    for access control.\n */\ncontract OZUUPSOwnableAdapter is OZUUPSBaseAdapter {\n    /**\n     * @param _proxyUpdater Address of the ProxyUpdater contract.\n     */\n    constructor(address _proxyUpdater) OZUUPSBaseAdapter(_proxyUpdater) {}\n\n    /**\n     * Transfers ownership of the proxy using the Ownable access control mechanism.\n     * @inheritdoc IProxyAdapter\n     */\n    function changeProxyAdmin(address payable _proxy, address _newAdmin) external override {\n        Ownable(_proxy).transferOwnership(_newAdmin);\n    }\n}\n"},"contracts/ChugSplashClaimer.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { ICrossChainAdapter } from \"./interfaces/ICrossChainAdapter.sol\";\nimport { ChugSplashRegistry } from \"./ChugSplashRegistry.sol\";\nimport { Version, RegistrationInfo, CrossChainMessageInfo } from \"./ChugSplashDataTypes.sol\";\n\n/**\n * @title ChugSplashClaimer\n */\ncontract ChugSplashClaimer is Ownable {\n    event OrganizationIDClaimed(bytes32 indexed orgID, address owner);\n\n    event RegistrationInitiated(\n        bytes32 indexed orgID,\n        address indexed originEndpoint,\n        uint32 indexed destDomainID,\n        address owner,\n        address caller\n    );\n\n    event InitiatorApprovalChanged(bytes32 indexed orgID, address indexed initiator, bool approved);\n\n    event CrossChainAdapterChanged(\n        address indexed originEndpoint,\n        uint32 indexed destDomainID,\n        address crossChainAdapter\n    );\n\n    ChugSplashRegistry public immutable registry;\n\n    mapping(bytes32 => bool) public organizationIDs;\n\n    mapping(bytes32 => address) public orgIDOwners;\n\n    mapping(bytes32 => mapping(address => bool)) public approvedInitiators;\n\n    // Origin endpoint => destination Domain ID => crossChainAdapter\n    mapping(address => mapping(uint32 => address)) public crossChainAdapters;\n\n    /**\n     * @param _owner Address of the owner of the registry.\n     */\n    constructor(address _owner, ChugSplashRegistry _registry) {\n        registry = _registry;\n        _transferOwnership(_owner);\n    }\n\n    function claimOrganizationID(bytes32 _orgID, address _owner) external {\n        require(!organizationIDs[_orgID], \"ChugSplashClaimer: orgID already claimed\");\n        organizationIDs[_orgID] = true;\n        orgIDOwners[_orgID] = _owner;\n        emit OrganizationIDClaimed(_orgID, _owner);\n    }\n\n    function initiateRegistration(\n        bytes32 _orgID,\n        CrossChainMessageInfo[] memory _messages,\n        RegistrationInfo[] memory _registrationInfo\n    ) external payable {\n        require(\n            msg.sender == orgIDOwners[_orgID] || approvedInitiators[_orgID][msg.sender],\n            \"ChugSplashClaimer: caller not approved\"\n        );\n\n        for (uint i = 0; i < _messages.length; i++) {\n            CrossChainMessageInfo memory messageInfo = _messages[i];\n            RegistrationInfo memory registration = _registrationInfo[i];\n            Version memory version = registration.version;\n\n            address managerImpl = registry.versions(version.major, version.minor, version.patch);\n            require(\n                registry.managerImplementations(managerImpl),\n                \"ChugSplashClaimer: invalid manager version\"\n            );\n\n            address crossChainAdapter = crossChainAdapters[messageInfo.originEndpoint][\n                messageInfo.destDomainID\n            ];\n            require(\n                crossChainAdapter != address(0),\n                \"ChugSplashClaimer: invalid crossChain adapter\"\n            );\n\n            (bool success, ) = crossChainAdapter.delegatecall(\n                abi.encodeCall(\n                    ICrossChainAdapter.initiateRegistration,\n                    (_orgID, registration, messageInfo)\n                )\n            );\n            require(success, \"ChugSplashClaimer: failed to initiate registration\");\n\n            emit RegistrationInitiated(\n                _orgID,\n                messageInfo.originEndpoint,\n                messageInfo.destDomainID,\n                registration.owner,\n                msg.sender\n            );\n        }\n    }\n\n    function setInitiatorApproval(bytes32 _orgID, address _initiator, bool _approved) external {\n        require(msg.sender == orgIDOwners[_orgID], \"ChugSplashClaimer: caller not org ID owner\");\n        approvedInitiators[_orgID][_initiator] = _approved;\n        emit InitiatorApprovalChanged(_orgID, _initiator, _approved);\n    }\n\n    function setCrossChainAdapter(\n        address _originEndpoint,\n        uint32 _destDomainID,\n        address _crossChainAdapter\n    ) external onlyOwner {\n        crossChainAdapters[_originEndpoint][_destDomainID] = _crossChainAdapter;\n        emit CrossChainAdapterChanged(_originEndpoint, _destDomainID, _crossChainAdapter);\n    }\n}\n"},"contracts/ChugSplashDataTypes.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.7.4 <0.9.0;\n\n/**\n * @notice Struct representing the state of a deployment.\n *\n * @custom:field status The status of the deployment.\n * @custom:field actions An array of booleans representing whether or not an action has been\n   executed.\n * @custom:field targets The number of targets in the deployment.\n * @custom:field actionRoot The root of the Merkle tree of actions.\n * @custom:field targetRoot The root of the Merkle tree of targets.\n * @custom:field numImmutableContracts The number of non-proxy contracts in the deployment.\n * @custom:field actionsExecuted The number of actions that have been executed so far in the\n   deployment.\n * @custom:field timeClaimed The time at which the deployment was claimed by a remote executor.\n * @custom:field selectedExecutor The address of the selected remote executor.\n * @custom:field remoteExecution Whether or not the deployment is being executed remotely.\n * @custom:field configUri URI pointing to the config file for the deployment.\n */\nstruct DeploymentState {\n    DeploymentStatus status;\n    bool[] actions;\n    uint256 targets;\n    bytes32 actionRoot;\n    bytes32 targetRoot;\n    uint256 numImmutableContracts;\n    uint256 actionsExecuted;\n    uint256 timeClaimed;\n    address selectedExecutor;\n    bool remoteExecution;\n    string configUri;\n}\n\n/**\n * @notice Struct representing a ChugSplash action.\n *\n * @custom:field actionType The type of action.\n * @custom:field data The ABI-encoded data associated with the action.\n * @custom:field addr The address of the contract to which the action applies.\n * @custom:field contractKindHash The hash of the contract kind associated with this contract.\n * @custom:field referenceName The reference name associated with the contract.\n */\nstruct RawChugSplashAction {\n    ChugSplashActionType actionType;\n    bytes data;\n    address payable addr;\n    bytes32 contractKindHash;\n    string referenceName;\n}\n\n/**\n * @notice Struct representing a target.\n *\n * @custom:field projectName The name of the project associated with the target.\n * @custom:field referenceName The reference name associated with the target.\n * @custom:field addr The address of the proxy associated with this target.\n * @custom:field implementation The address that will be the proxy's implementation at the end of\n   the deployment.\n * @custom:field contractKindHash The hash of the contract kind associated with this contract.\n */\nstruct ChugSplashTarget {\n    string projectName;\n    string referenceName;\n    address payable addr;\n    address implementation;\n    bytes32 contractKindHash;\n}\n\n/**\n * @notice Enum representing possible action types.\n *\n * @custom:value SET_STORAGE Set a storage slot value in a proxy contract.\n * @custom:value DEPLOY_CONTRACT Deploy a contract.\n */\nenum ChugSplashActionType {\n    SET_STORAGE,\n    DEPLOY_CONTRACT\n}\n\n/**\n * @notice Enum representing the status of the deployment. These steps occur in sequential order,\n   with the `CANCELLED` status being an exception.\n *\n * @custom:value EMPTY The deployment does not exist.\n * @custom:value PROPOSED The deployment has been proposed.\n * @custom:value APPROVED The deployment has been approved by the owner.\n * @custom:value PROXIES_INITIATED The proxies in the deployment have been initiated.\n * @custom:value COMPLETED The deployment has been completed.\n * @custom:value CANCELLED The deployment has been cancelled.\n * @custom:value FAILED The deployment has failed.\n */\nenum DeploymentStatus {\n    EMPTY,\n    PROPOSED,\n    APPROVED,\n    PROXIES_INITIATED,\n    COMPLETED,\n    CANCELLED,\n    FAILED\n}\n\nstruct CrossChainMessageInfo {\n    address payable originEndpoint;\n    uint32 destDomainID;\n    uint256 relayerFee;\n}\n\n/**\n * @notice Version number as a struct.\n *\n * @custom:field major Major version number.\n * @custom:field minor Minor version number.\n * @custom:field patch Patch version number.\n */\nstruct Version {\n    uint256 major;\n    uint256 minor;\n    uint256 patch;\n}\n\nstruct RegistrationInfo {\n    Version version;\n    address owner;\n    bytes managerInitializerData;\n}\n\nstruct ChugSplashBundles {\n    ChugSplashActionBundle actionBundle;\n    ChugSplashTargetBundle targetBundle;\n}\n\nstruct ChugSplashActionBundle {\n    bytes32 root;\n    BundledChugSplashAction[] actions;\n}\n\nstruct ChugSplashTargetBundle {\n    bytes32 root;\n    BundledChugSplashTarget[] targets;\n}\n\nstruct BundledChugSplashAction {\n    RawChugSplashAction action;\n    ActionProof proof;\n}\n\nstruct BundledChugSplashTarget {\n    ChugSplashTarget target;\n    bytes32[] siblings;\n}\n\nstruct ActionProof {\n    uint256 actionIndex;\n    bytes32[] siblings;\n}\n"},"contracts/ChugSplashManager.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport {\n    DeploymentState,\n    RawChugSplashAction,\n    ChugSplashTarget,\n    ChugSplashActionType,\n    DeploymentStatus\n} from \"./ChugSplashDataTypes.sol\";\nimport {\n    OwnableUpgradeable\n} from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { IChugSplashRegistry } from \"./interfaces/IChugSplashRegistry.sol\";\nimport { IChugSplashManager } from \"./interfaces/IChugSplashManager.sol\";\nimport { IProxyAdapter } from \"./interfaces/IProxyAdapter.sol\";\nimport {\n    Lib_MerkleTree as MerkleTree\n} from \"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol\";\nimport {\n    ReentrancyGuardUpgradeable\n} from \"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\";\nimport { IAccessControl } from \"@openzeppelin/contracts/access/IAccessControl.sol\";\nimport { ICreate3 } from \"./interfaces/ICreate3.sol\";\nimport { Semver, Version } from \"./Semver.sol\";\nimport { IGasPriceCalculator } from \"./interfaces/IGasPriceCalculator.sol\";\nimport {\n    ERC2771ContextUpgradeable\n} from \"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol\";\nimport {\n    ContextUpgradeable\n} from \"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\";\nimport { ChugSplashManagerEvents } from \"./ChugSplashManagerEvents.sol\";\n\n/**\n * @title ChugSplashManager\n * @custom:version 1.0.0\n * @notice This contract contains the logic for managing the entire lifecycle of a project's\n   deployments. It contains the functionality for proposing, approving, and executing deployments,\n   paying remote executors, and exporting proxies out of the ChugSplash system if desired. It exists\n   as a single implementation contract behind ChugSplashManagerProxy contracts.\n\n   After a deployment is approved, it is executed in the following steps, which must occur in order.\n    1. Execute all of the `DEPLOY_CONTRACT` actions using the `executeActions` function. This is\n       first because it's possible for the constructor of a deployed contract to revert. If this\n       happens, we cancel the deployment before the proxies are modified in any way.\n    2. The `initiateProxies` function.\n    3. Execute all of the `SET_STORAGE` actions using the `executeActions` function.\n    4. The `completeUpgrade` function.\n */\ncontract ChugSplashManager is\n    OwnableUpgradeable,\n    ReentrancyGuardUpgradeable,\n    Semver,\n    IChugSplashManager,\n    ERC2771ContextUpgradeable,\n    ChugSplashManagerEvents\n{\n    /**\n     * @notice Role required to be a remote executor for a deployment.\n     */\n    bytes32 internal constant REMOTE_EXECUTOR_ROLE = keccak256(\"REMOTE_EXECUTOR_ROLE\");\n\n    /**\n     * @notice Role required to propose deployments through the ManagedService contract.\n     */\n    bytes32 internal constant MANAGED_PROPOSER_ROLE = keccak256(\"MANAGED_PROPOSER_ROLE\");\n\n    /**\n     * @notice The contract kind hash for contracts that do not use a proxy (i.e. immutable\n       contracts).\n     */\n    bytes32 internal constant IMMUTABLE_CONTRACT_KIND_HASH = keccak256(\"immutable\");\n\n    /**\n     * @notice Address of the ChugSplashRegistry.\n     */\n    IChugSplashRegistry public immutable registry;\n\n    /**\n     * @notice Address of the Create3 contract.\n     */\n    address public immutable create3;\n\n    /**\n     * @notice Address of the GasPriceCalculator contract.\n     */\n    IGasPriceCalculator public immutable gasPriceCalculator;\n\n    /**\n     * @notice Address of the ManagedService contract.\n     */\n    IAccessControl public immutable managedService;\n\n    /**\n     * @notice Amount that must be stored in this contract in order to remotely execute a\n       deployment. It is not necessary to deposit this amount if the owner is self-executing their\n       deployment. The bond can be deposited by any account.\n\n       The owner can withdraw this amount whenever a deployment is not active. However, this amount\n       will be forfeited if the owner cancels a deployment that is in progress and within the\n       `executionLockTime`. This is necessary to prevent owners from trolling the remote executor by\n       immediately cancelling and withdrawing funds.\n     */\n    uint256 public immutable ownerBondAmount;\n\n    /**\n     * @notice Amount of time for a remote executor to finish executing a deployment once they have\n       claimed it.\n     */\n    uint256 public immutable executionLockTime;\n\n    /**\n     * @notice Percentage that the remote executor profits from a deployment. This is denominated as\n       a percentage of the cost of execution. For example, if a deployment costs 1 gwei to execute\n       and the executorPaymentPercentage is 10, then the executor will profit 0.1 gwei.\n     */\n    uint256 public immutable executorPaymentPercentage;\n\n    /**\n     * @notice Percentage that the protocol creators profit during a remotely executed deployment.\n       This is denominated as a percentage of the cost of execution. For example, if a deployment\n       costs 1 gwei to execute and the protocolPaymentPercentage is 10, then the protocol will\n       profit 0.1 gwei. Note that the protocol does not profit during a self-executed deployment.\n     */\n    uint256 public immutable protocolPaymentPercentage;\n\n    /**\n     * @notice Mapping of executor addresses to the ETH amount stored in this contract that is\n     *         owed to them.\n     */\n    mapping(address => uint256) public executorDebt;\n\n    /**\n     * @notice Maps an address to a boolean indicating if the address has been approved by the owner\n       to propose deployments. Note that this does include proposers from the managed service (see\n       `isProposer`).\n     */\n    mapping(address => bool) public proposers;\n\n    /**\n     * @notice Mapping of deployment IDs to deployment state.\n     */\n    mapping(bytes32 => DeploymentState) internal _deployments;\n\n    /**\n     * @notice Organization ID for this contract.\n     */\n    bytes32 public organizationID;\n\n    /**\n     * @notice ID of the currently active deployment.\n     */\n    bytes32 public activeDeploymentId;\n\n    /**\n     * @notice Total ETH amount stored in this contract that is owed to remote executors.\n     */\n    uint256 public totalExecutorDebt;\n\n    /**\n     * @notice Total ETH amount stored in this contract that is owed to the protocol creators.\n     */\n    uint256 public totalProtocolDebt;\n\n    /**\n     * @notice A boolean indicating if the owner of this contract has approved the ManagedService\n       contract to propose deployments on their behalf.\n     */\n    bool public allowManagedProposals;\n\n    /**\n     * @notice Reverts if the caller is not a remote executor.\n     */\n    error CallerIsNotRemoteExecutor();\n\n    /**\n     * @notice Reverts if the caller is not a proposer.\n     */\n    error CallerIsNotProposer();\n\n    /**\n     * @notice Reverts if the deployment state is not proposable.\n     */\n    error DeploymentStateIsNotProposable();\n\n    /**\n     * @notice Reverts if there isn't at least `OWNER_BOND_AMOUNT` in this contract. Only applies\n       to deployments that will be remotely executed.\n     */\n    error InsufficientOwnerBond();\n\n    /**\n     * @notice Reverts if the deployment state is not proposed.\n     */\n    error DeploymentIsNotProposed();\n\n    /**\n     * @notice Reverts if there is another active deployment ID.\n     */\n    error AnotherDeploymentInProgress();\n\n    /**\n     * @notice Reverts if there is currently no active deployment ID.\n     */\n    error NoActiveDeployment();\n\n    /**\n     * @notice Reverts if a deployment can only be self-executed by the owner.\n     */\n    error RemoteExecutionDisabled();\n\n    /**\n     * @notice Reverts if the deployment has already been claimed by another remote executor.\n     */\n    error DeploymentAlreadyClaimed();\n\n    /**\n     * @notice Reverts if the amount equals zero.\n     */\n    error AmountMustBeGreaterThanZero();\n\n    /**\n     * @notice Reverts if the remote executor has insufficient debt in this contract.\n     */\n    error InsufficientExecutorDebt();\n\n    /**\n     * @notice Reverts if there's not enough funds in the contract pay the protocol fee and the\n     *  withdraw amount requested by the executor.\n     */\n    error InsufficientFunds();\n\n    /**\n     * @notice Reverts if a withdrawal transaction fails. This is likely due to insufficient funds\n       in this contract.\n     */\n    error WithdrawalFailed();\n\n    /**\n     * @notice Reverts if there is no bytecode at a given address.\n     */\n    error ContractDoesNotExist();\n\n    /**\n     * @notice Reverts if an invalid contract kind is provided.\n     */\n    error InvalidContractKind();\n\n    /**\n     * @notice Reverts if the call to export ownership of a proxy from this contract fails.\n     */\n    error ProxyExportFailed();\n\n    /**\n     * @notice Reverts if an empty actions array is provided as input to the transaction.\n     */\n    error EmptyActionsArray();\n\n    /**\n     * @notice Reverts if the action has already been executed in this deployment.\n     */\n    error ActionAlreadyExecuted();\n\n    /**\n     * @notice Reverts if an invalid Merkle proof is provided.\n     */\n    error InvalidMerkleProof();\n\n    /**\n     * @notice Reverts if the action type is not `DEPLOY_CONTRACT` or `SET_STORAGE`.\n     */\n    error InvalidActionType();\n\n    /**\n     * @notice Reverts if an upgrade is initiated before all of the contracts are deployed via\n       `executeActions`.\n     */\n    error InitiatedUpgradeTooEarly();\n\n    /**\n     * @notice Reverts if the deployment is not in the `APPROVED` state.\n     */\n    error DeploymentIsNotApproved();\n\n    /**\n     * @notice Reverts if the provided number of targets does not match the actual number of targets\n       in the deployment.\n     */\n    error IncorrectNumberOfTargets();\n\n    /**\n     * @notice Reverts if a non-proxy contract type is used instead of a proxy type.\n     */\n    error OnlyProxiesAllowed();\n\n    /**\n     * @notice Reverts if the call to initiate an upgrade on a proxy fails.\n     */\n    error FailedToInitiateUpgrade();\n\n    /**\n     * @notice Reverts if an upgrade is completed before all of the actions have been executed.\n     */\n    error FinalizedUpgradeTooEarly();\n\n    /**\n     * @notice Reverts if the call to finalize an upgrade on a proxy fails.\n     */\n    error FailedToFinalizeUpgrade();\n\n    /**\n     * @notice Reverts if the deployment is not in the `PROXIES_INITIATED` state.\n     */\n    error ProxiesAreNotInitiated();\n\n    /**\n     * @notice Reverts if the call to modify a proxy's storage slot value fails.\n     */\n    error SetStorageFailed();\n\n    /**\n     * @notice Reverts if the caller is not a selected executor.\n     */\n    error CallerIsNotSelectedExecutor();\n\n    /**\n     * @notice Reverts if the caller is not the owner.\n     */\n    error CallerIsNotOwner();\n\n    /**\n     * @notice Reverts if the low-level delegatecall to get an address fails.\n     */\n    error FailedToGetAddress();\n\n    /**\n     * @notice Modifier that reverts if the caller is not a remote executor.\n     */\n    modifier onlyExecutor() {\n        if (!managedService.hasRole(REMOTE_EXECUTOR_ROLE, _msgSender())) {\n            revert CallerIsNotRemoteExecutor();\n        }\n        _;\n    }\n\n    /**\n     * @param _registry                  Address of the ChugSplashRegistry.\n     * @param _create3                   Address of the Create3 contract.\n     * @param _gasPriceCalculator        Address of the GasPriceCalculator contract.\n     * @param _managedService            Address of the ManagedService contract.\n     * @param _executionLockTime         Amount of time for a remote executor to completely execute\n       a deployment after claiming it.\n     * @param _ownerBondAmount           Amount that must be deposited in this contract in order to\n     *                                   remote execute a deployment.\n     * @param _executorPaymentPercentage Percentage that an executor will profit from completing a\n       deployment.\n     * @param _protocolPaymentPercentage Percentage that the protocol creators will profit from\n         completing a deployment.\n     * @param _version                   Version of this contract.\n     */\n    constructor(\n        IChugSplashRegistry _registry,\n        address _create3,\n        IGasPriceCalculator _gasPriceCalculator,\n        IAccessControl _managedService,\n        uint256 _executionLockTime,\n        uint256 _ownerBondAmount,\n        uint256 _executorPaymentPercentage,\n        uint256 _protocolPaymentPercentage,\n        Version memory _version,\n        address _trustedForwarder\n    )\n        Semver(_version.major, _version.minor, _version.patch)\n        ERC2771ContextUpgradeable(_trustedForwarder)\n    {\n        registry = _registry;\n        create3 = _create3;\n        gasPriceCalculator = _gasPriceCalculator;\n        managedService = _managedService;\n        executionLockTime = _executionLockTime;\n        ownerBondAmount = _ownerBondAmount;\n        executorPaymentPercentage = _executorPaymentPercentage;\n        protocolPaymentPercentage = _protocolPaymentPercentage;\n    }\n\n    /**\n     * @notice Allows anyone to send ETH to this contract.\n     */\n    receive() external payable {\n        emit ETHDeposited(_msgSender(), msg.value);\n        registry.announce(\"ETHDeposited\");\n    }\n\n    /**\n     * @inheritdoc IChugSplashManager\n     *\n     * @param _data Initialization data. We expect the following data, ABI-encoded:\n     *              - address _owner: Address of the owner of this contract.\n     *              - bytes32 _organizationID: Organization ID for this contract.\n     *              - bool _allowManagedProposals: Whether or not to allow upgrade proposals from\n     *                the ManagedService contract.\n     *\n     * @return Empty bytes.\n     */\n    function initialize(bytes memory _data) external initializer returns (bytes memory) {\n        (address _owner, bytes32 _organizationID, bool _allowManagedProposals) = abi.decode(\n            _data,\n            (address, bytes32, bool)\n        );\n\n        organizationID = _organizationID;\n        allowManagedProposals = _allowManagedProposals;\n\n        __ReentrancyGuard_init();\n        __Ownable_init();\n        _transferOwnership(_owner);\n\n        return \"\";\n    }\n\n    /**\n     * @notice Propose a new deployment. No action can be taken on the deployment until it is\n       approved via the `approve` function. Only callable by the owner of this contract, a proposer\n       that has been approved by the owner, or the ManagedService contract, if\n       `allowManagedProposals` is true. These permissions prevent spam.\n     *\n     * @param _actionRoot Root of the Merkle tree containing the actions for the deployment.\n     * This may be `bytes32(0)` if there are no actions in the deployment.\n     * @param _targetRoot Root of the Merkle tree containing the targets for the deployment.\n     * This may be `bytes32(0)` if there are no targets in the deployment.\n     * @param _numImmutableContracts Number of non-proxy contracts in the deployment.\n     * @param _numActions Number of actions in the deployment.\n     * @param _numTargets Number of targets in the deployment.\n     * @param _configUri  URI pointing to the config file for the deployment.\n     * @param _remoteExecution Whether or not to allow remote execution of the deployment.\n     */\n    function propose(\n        bytes32 _actionRoot,\n        bytes32 _targetRoot,\n        uint256 _numActions,\n        uint256 _numTargets,\n        uint256 _numImmutableContracts,\n        string memory _configUri,\n        bool _remoteExecution\n    ) public {\n        if (!isProposer(_msgSender())) {\n            revert CallerIsNotProposer();\n        }\n\n        // Compute the deployment ID.\n        bytes32 deploymentId = keccak256(\n            abi.encode(\n                _actionRoot,\n                _targetRoot,\n                _numActions,\n                _numTargets,\n                _numImmutableContracts,\n                _configUri\n            )\n        );\n\n        DeploymentState storage deployment = _deployments[deploymentId];\n\n        DeploymentStatus status = deployment.status;\n        if (\n            status != DeploymentStatus.EMPTY &&\n            status != DeploymentStatus.COMPLETED &&\n            status != DeploymentStatus.CANCELLED &&\n            status != DeploymentStatus.FAILED\n        ) {\n            revert DeploymentStateIsNotProposable();\n        }\n\n        deployment.status = DeploymentStatus.PROPOSED;\n        deployment.actionRoot = _actionRoot;\n        deployment.targetRoot = _targetRoot;\n        deployment.numImmutableContracts = _numImmutableContracts;\n        deployment.actions = new bool[](_numActions);\n        deployment.targets = _numTargets;\n        deployment.remoteExecution = _remoteExecution;\n        deployment.configUri = _configUri;\n\n        emit ChugSplashDeploymentProposed(\n            deploymentId,\n            _actionRoot,\n            _targetRoot,\n            _numActions,\n            _numTargets,\n            _numImmutableContracts,\n            _configUri,\n            _remoteExecution,\n            _msgSender()\n        );\n        registry.announceWithData(\"ChugSplashDeploymentProposed\", abi.encodePacked(_msgSender()));\n    }\n\n    /**\n     * @notice Wrapper on the propose function which allows for a gasless proposal where the cost of\n     *         the using proposal is added to the protocol debt. This allows us to provide gasless\n     *         proposals using meta transactions while collecting the cost from the user after\n     *         execution completes.\n     */\n    function gaslesslyPropose(\n        bytes32 _actionRoot,\n        bytes32 _targetRoot,\n        uint256 _numActions,\n        uint256 _numTargets,\n        uint256 _numImmutableContracts,\n        string memory _configUri,\n        bool _remoteExecution\n    ) external {\n        uint256 initialGasLeft = gasleft();\n\n        propose(\n            _actionRoot,\n            _targetRoot,\n            _numActions,\n            _numTargets,\n            _numImmutableContracts,\n            _configUri,\n            _remoteExecution\n        );\n\n        // Get the gas price\n        uint256 gasPrice = gasPriceCalculator.getGasPrice();\n        // Estimate the cost of the call data\n        uint256 calldataGasUsed = _msgData().length * 16;\n        // Calculate the gas used for the entire transaction, and add a buffer of 50k.\n        uint256 estGasUsed = 100_000 + calldataGasUsed + initialGasLeft - gasleft();\n        uint256 proposalCost = gasPrice * estGasUsed;\n\n        // Add the cost of the proposal to the protocol debt\n        totalProtocolDebt += proposalCost;\n    }\n\n    /**\n     * @notice Allows the owner to approve a deployment to be executed. If remote execution is\n       enabled, there must be at least `ownerBondAmount` deposited in this contract before the\n       deployment can be approved. The deployment must be proposed before it can be approved.\n     *\n     * @param _deploymentId ID of the deployment to approve\n     */\n    function approve(bytes32 _deploymentId) external onlyOwner {\n        DeploymentState storage deployment = _deployments[_deploymentId];\n\n        if (\n            deployment.remoteExecution &&\n            address(this).balance > totalDebt() &&\n            address(this).balance - totalDebt() < ownerBondAmount\n        ) {\n            revert InsufficientOwnerBond();\n        }\n\n        if (deployment.status != DeploymentStatus.PROPOSED) {\n            revert DeploymentIsNotProposed();\n        }\n\n        if (activeDeploymentId != bytes32(0)) {\n            revert AnotherDeploymentInProgress();\n        }\n\n        activeDeploymentId = _deploymentId;\n        deployment.status = DeploymentStatus.APPROVED;\n\n        emit ChugSplashDeploymentApproved(_deploymentId);\n        registry.announce(\"ChugSplashDeploymentApproved\");\n    }\n\n    /**\n     * @notice Helper function that executes an entire upgrade in a single transaction. This allows\n       the proxies in smaller upgrades to have zero downtime. This must occur after all of the\n       `DEPLOY_CONTRACT` actions have been executed.\n\n     * @param _targets Array of ChugSplashTarget structs containing the targets for the deployment.\n     * @param _targetProofs Array of Merkle proofs for the targets.\n     * @param _actions Array of RawChugSplashAction structs containing the actions for the\n     *                 deployment.\n     * @param _actionIndexes Array of indexes into the actions array for each target.\n     * @param _actionProofs Array of Merkle proofs for the actions.\n     */\n    function executeEntireUpgrade(\n        ChugSplashTarget[] memory _targets,\n        bytes32[][] memory _targetProofs,\n        RawChugSplashAction[] memory _actions,\n        uint256[] memory _actionIndexes,\n        bytes32[][] memory _actionProofs\n    ) external {\n        initiateUpgrade(_targets, _targetProofs);\n\n        // Execute the `SET_STORAGE` actions if there are any.\n        if (_actions.length > 0) {\n            executeActions(_actions, _actionIndexes, _actionProofs);\n        }\n\n        finalizeUpgrade(_targets, _targetProofs);\n    }\n\n    /**\n     * @notice **WARNING**: Cancellation is a potentially dangerous action and should not be\n     *         executed unless in an emergency.\n     *\n     *         Allows the owner to cancel an active deployment that was approved. If an executor has\n               not claimed the deployment, the owner is simply allowed to withdraw their bond via a\n               subsequent call to `withdrawOwnerETH`. Otherwise, cancelling a deployment will cause\n               the owner to forfeit their bond to the executor. This is necessary to prevent owners\n               from trolling the remote executor by immediately cancelling and withdrawing funds.\n     */\n    function cancelActiveChugSplashDeployment() external onlyOwner {\n        if (activeDeploymentId == bytes32(0)) {\n            revert NoActiveDeployment();\n        }\n\n        DeploymentState storage deployment = _deployments[activeDeploymentId];\n\n        if (\n            deployment.remoteExecution &&\n            deployment.timeClaimed + executionLockTime >= block.timestamp\n        ) {\n            // Give the owner's bond to the executor if the deployment is cancelled within the\n            // `executionLockTime` window.\n            executorDebt[_msgSender()] += ownerBondAmount;\n            totalExecutorDebt += ownerBondAmount;\n        }\n\n        bytes32 cancelledDeploymentId = activeDeploymentId;\n        activeDeploymentId = bytes32(0);\n        deployment.status = DeploymentStatus.CANCELLED;\n\n        emit ChugSplashDeploymentCancelled(\n            cancelledDeploymentId,\n            _msgSender(),\n            deployment.actionsExecuted\n        );\n        registry.announce(\"ChugSplashDeploymentCancelled\");\n    }\n\n    /**\n     * @notice Allows a remote executor to claim the sole right to execute a deployment over a\n               period of `executionLockTime`. Only the first executor to post a bond gains this\n               right. Executors must finish executing the deployment within `executionLockTime` or\n               else another executor may claim the deployment.\n     */\n    function claimDeployment() external onlyExecutor {\n        if (activeDeploymentId == bytes32(0)) {\n            revert NoActiveDeployment();\n        }\n\n        DeploymentState storage deployment = _deployments[activeDeploymentId];\n\n        if (!deployment.remoteExecution) {\n            revert RemoteExecutionDisabled();\n        }\n\n        if (block.timestamp <= deployment.timeClaimed + executionLockTime) {\n            revert DeploymentAlreadyClaimed();\n        }\n\n        deployment.timeClaimed = block.timestamp;\n        deployment.selectedExecutor = _msgSender();\n\n        emit ChugSplashDeploymentClaimed(activeDeploymentId, _msgSender());\n        registry.announce(\"ChugSplashDeploymentClaimed\");\n    }\n\n    /**\n     * @notice Allows an executor to claim its ETH payment that was earned by completing a\n       deployment. Executors may only withdraw an amount less than or equal to the amount of ETH\n       owed to them by this contract. We allow the executor to withdraw less than the amount owed to\n       them because it's possible that the executor's debt exceeds the amount of ETH stored in this\n       contract. This situation can occur when the executor completes an underfunded deployment.\n\n     * @param _amount Amount of ETH to withdraw.\n     */\n    function claimExecutorPayment(uint256 _amount) external onlyExecutor {\n        if (_amount == 0) {\n            revert AmountMustBeGreaterThanZero();\n        }\n        if (executorDebt[_msgSender()] < _amount) {\n            revert InsufficientExecutorDebt();\n        }\n        if (_amount + totalProtocolDebt > address(this).balance) {\n            revert InsufficientFunds();\n        }\n\n        executorDebt[_msgSender()] -= _amount;\n        totalExecutorDebt -= _amount;\n\n        emit ExecutorPaymentClaimed(_msgSender(), _amount, executorDebt[_msgSender()]);\n\n        (bool paidExecutor, ) = payable(_msgSender()).call{ value: _amount }(new bytes(0));\n        if (!paidExecutor) {\n            revert WithdrawalFailed();\n        }\n\n        (bool paidProtocol, ) = payable(address(managedService)).call{ value: totalProtocolDebt }(\n            new bytes(0)\n        );\n        if (!paidProtocol) {\n            revert WithdrawalFailed();\n        }\n\n        registry.announce(\"ExecutorPaymentClaimed\");\n    }\n\n    /**\n     * @notice Transfers ownership of a proxy away from this contract to a specified address. Only\n       callable by the owner. Note that this function allows the owner to send ownership of their\n       proxy to address(0), which would make their proxy non-upgradeable.\n     *\n     * @param _proxy  Address of the proxy to transfer ownership of.\n     * @param _contractKindHash  Hash of the contract kind, which represents the proxy type.\n     * @param _newOwner  Address of the owner to receive ownership of the proxy.\n     */\n    function exportProxy(\n        address payable _proxy,\n        bytes32 _contractKindHash,\n        address _newOwner\n    ) external onlyOwner {\n        if (_proxy.code.length == 0) {\n            revert ContractDoesNotExist();\n        }\n\n        if (activeDeploymentId != bytes32(0)) {\n            revert AnotherDeploymentInProgress();\n        }\n\n        // Get the adapter that corresponds to this contract type.\n        address adapter = registry.adapters(_contractKindHash);\n        if (adapter == address(0)) {\n            revert InvalidContractKind();\n        }\n\n        emit ProxyExported(_proxy, _contractKindHash, _newOwner);\n\n        // Delegatecall the adapter to change ownership of the proxy.\n        // slither-disable-next-line controlled-delegatecall\n        (bool success, ) = adapter.delegatecall(\n            abi.encodeCall(IProxyAdapter.changeProxyAdmin, (_proxy, _newOwner))\n        );\n        if (!success) {\n            revert ProxyExportFailed();\n        }\n\n        registry.announce(\"ProxyExported\");\n    }\n\n    /**\n     * @notice Allows the owner to withdraw all funds in this contract minus the debt\n     *         owed to the executor and protocol. Cannot be called when there is an active\n               deployment, as this would rug the remote executor.\n     */\n    function withdrawOwnerETH() external onlyOwner {\n        if (activeDeploymentId != bytes32(0)) {\n            revert AnotherDeploymentInProgress();\n        }\n\n        uint256 amount = address(this).balance - totalDebt();\n\n        emit OwnerWithdrewETH(_msgSender(), amount);\n\n        (bool success, ) = payable(_msgSender()).call{ value: amount }(new bytes(0));\n        if (!success) {\n            revert WithdrawalFailed();\n        }\n\n        registry.announce(\"OwnerWithdrewETH\");\n    }\n\n    /**\n     * @notice Allows the owner of this contract to add or remove a proposer.\n     *\n     * @param _proposer Address of the proposer to add or remove.\n     * @param _isProposer Whether or not the proposer should be added or removed.\n     */\n    function setProposer(address _proposer, bool _isProposer) external onlyOwner {\n        proposers[_proposer] = _isProposer;\n\n        emit ProposerSet(_proposer, _isProposer, _msgSender());\n        registry.announceWithData(\"ProposerSet\", abi.encodePacked(_isProposer));\n    }\n\n    /**\n     * @notice Allows the owner to toggle whether or not proposals via the ManagedService contract\n       is allowed.\n     */\n    function toggleAllowManagedProposals() external onlyOwner {\n        allowManagedProposals = !allowManagedProposals;\n\n        emit ToggledManagedProposals(allowManagedProposals, _msgSender());\n        registry.announceWithData(\n            \"ToggledManagedProposals\",\n            abi.encodePacked(allowManagedProposals)\n        );\n    }\n\n    /**\n     * @notice Gets the DeploymentState struct for a given deployment ID. Note that we explicitly\n     *         define this function because the getter function auto-generated by Solidity doesn't\n               return\n     *         array members of structs: https://github.com/ethereum/solidity/issues/12792. Without\n     *         this function, we wouldn't be able to retrieve the full `DeploymentState.actions`\n               array.\n     *\n     * @param _deploymentId Deployment ID.\n     *\n     * @return DeploymentState struct.\n     */\n    function deployments(bytes32 _deploymentId) external view returns (DeploymentState memory) {\n        return _deployments[_deploymentId];\n    }\n\n    /**\n     * @inheritdoc IChugSplashManager\n     */\n    function isExecuting() external view returns (bool) {\n        return activeDeploymentId != bytes32(0);\n    }\n\n    /**\n     * @notice Deploys non-proxy contracts and sets proxy state variables. If the deployment does\n       not contain any proxies, it will be completed after all of the non-proxy contracts have been\n       deployed in this function.\n     *\n     * @param _actions Array of RawChugSplashAction structs containing the actions for the\n     *                 deployment.\n     * @param _actionIndexes Array of action indexes.\n     * @param _proofs Array of Merkle proofs for the actions.\n     */\n    function executeActions(\n        RawChugSplashAction[] memory _actions,\n        uint256[] memory _actionIndexes,\n        bytes32[][] memory _proofs\n    ) public nonReentrant {\n        uint256 initialGasLeft = gasleft();\n\n        DeploymentState storage deployment = _deployments[activeDeploymentId];\n\n        _assertCallerIsOwnerOrSelectedExecutor(deployment.remoteExecution);\n\n        uint256 numActions = _actions.length;\n\n        // Prevents the executor from repeatedly sending an empty array of `_actions`, which would\n        // cause the executor to be paid for doing nothing.\n        if (numActions == 0) {\n            revert EmptyActionsArray();\n        }\n\n        RawChugSplashAction memory action;\n        uint256 actionIndex;\n        bytes32[] memory proof;\n        for (uint256 i = 0; i < numActions; i++) {\n            action = _actions[i];\n            actionIndex = _actionIndexes[i];\n            proof = _proofs[i];\n\n            if (deployment.actions[actionIndex]) {\n                revert ActionAlreadyExecuted();\n            }\n\n            if (\n                !MerkleTree.verify(\n                    deployment.actionRoot,\n                    keccak256(\n                        abi.encode(\n                            action.referenceName,\n                            action.addr,\n                            action.actionType,\n                            action.contractKindHash,\n                            action.data\n                        )\n                    ),\n                    actionIndex,\n                    proof,\n                    deployment.actions.length\n                )\n            ) {\n                revert InvalidMerkleProof();\n            }\n\n            // Mark the action as executed and update the total number of executed actions.\n            deployment.actionsExecuted++;\n            deployment.actions[actionIndex] = true;\n\n            if (action.actionType == ChugSplashActionType.DEPLOY_CONTRACT) {\n                _attemptContractDeployment(deployment, action, actionIndex);\n\n                if (\n                    deployment.actionsExecuted == deployment.actions.length &&\n                    deployment.targets == 0 &&\n                    deployment.status != DeploymentStatus.FAILED\n                ) {\n                    _completeDeployment(deployment);\n                }\n            } else if (action.actionType == ChugSplashActionType.SET_STORAGE) {\n                _setProxyStorage(deployment, action, actionIndex);\n            } else {\n                revert InvalidActionType();\n            }\n        }\n\n        _payExecutorAndProtocol(initialGasLeft, deployment.remoteExecution);\n    }\n\n    /**\n     * @notice Initiate the proxies in an upgrade. This must be called after the contracts are\n       deployment is approved, and before the rest of the execution process occurs. In this\n       function, all of the proxies in the deployment are disabled by setting their implementations\n       to a contract that can only be called by the team's ChugSplashManagerProxy. This must occur\n       in a single transaction to make the process atomic, which means the proxies are upgraded as a\n       single unit.\n\n     * @param _targets Array of ChugSplashTarget structs containing the targets for the deployment.\n     * @param _proofs Array of Merkle proofs for the targets.\n     */\n    function initiateUpgrade(\n        ChugSplashTarget[] memory _targets,\n        bytes32[][] memory _proofs\n    ) public nonReentrant {\n        uint256 initialGasLeft = gasleft();\n\n        DeploymentState storage deployment = _deployments[activeDeploymentId];\n\n        _assertCallerIsOwnerOrSelectedExecutor(deployment.remoteExecution);\n\n        if (deployment.actionsExecuted != deployment.numImmutableContracts) {\n            revert InitiatedUpgradeTooEarly();\n        }\n\n        // Ensures that the deployment status isn't `FAILED`.\n        if (deployment.status != DeploymentStatus.APPROVED) {\n            revert DeploymentIsNotApproved();\n        }\n\n        uint256 numTargets = _targets.length;\n        if (numTargets != deployment.targets) {\n            revert IncorrectNumberOfTargets();\n        }\n\n        ChugSplashTarget memory target;\n        bytes32[] memory proof;\n        for (uint256 i = 0; i < numTargets; i++) {\n            target = _targets[i];\n            proof = _proofs[i];\n\n            if (target.contractKindHash == IMMUTABLE_CONTRACT_KIND_HASH) {\n                revert OnlyProxiesAllowed();\n            }\n\n            if (\n                !MerkleTree.verify(\n                    deployment.targetRoot,\n                    keccak256(\n                        abi.encode(\n                            target.projectName,\n                            target.referenceName,\n                            target.addr,\n                            target.implementation,\n                            target.contractKindHash\n                        )\n                    ),\n                    i,\n                    proof,\n                    deployment.targets\n                )\n            ) {\n                revert InvalidMerkleProof();\n            }\n\n            address adapter = registry.adapters(target.contractKindHash);\n            if (adapter == address(0)) {\n                revert InvalidContractKind();\n            }\n\n            // Set the proxy's implementation to be a ProxyUpdater. Updaters ensure that only the\n            // ChugSplashManager can interact with a proxy that is in the process of being updated.\n            // Note that we use the Updater contract to provide a generic interface for updating a\n            // variety of proxy types. Note no adapter is necessary for non-proxied contracts as\n            // they are not upgradable and cannot have state.\n            // slither-disable-next-line controlled-delegatecall\n            (bool success, ) = adapter.delegatecall(\n                abi.encodeCall(IProxyAdapter.initiateUpgrade, (target.addr))\n            );\n            if (!success) {\n                revert FailedToInitiateUpgrade();\n            }\n        }\n\n        // Mark the deployment as initiated.\n        deployment.status = DeploymentStatus.PROXIES_INITIATED;\n\n        emit ProxiesInitiated(activeDeploymentId, _msgSender());\n        registry.announce(\"ProxiesInitiated\");\n\n        _payExecutorAndProtocol(initialGasLeft, deployment.remoteExecution);\n    }\n\n    /**\n     * @notice Finalizes the upgrade by upgrading all proxies to their new implementations. This\n     *         occurs in a single transaction to ensure that the upgrade is atomic.\n     *\n     * @param _targets Array of ChugSplashTarget structs containing the targets for the deployment.\n     * @param _proofs Array of Merkle proofs for the targets.\n     */\n    function finalizeUpgrade(\n        ChugSplashTarget[] memory _targets,\n        bytes32[][] memory _proofs\n    ) public nonReentrant {\n        uint256 initialGasLeft = gasleft();\n\n        DeploymentState storage deployment = _deployments[activeDeploymentId];\n\n        _assertCallerIsOwnerOrSelectedExecutor(deployment.remoteExecution);\n\n        if (activeDeploymentId == bytes32(0)) {\n            revert NoActiveDeployment();\n        }\n\n        if (deployment.actionsExecuted != deployment.actions.length) {\n            revert FinalizedUpgradeTooEarly();\n        }\n\n        uint256 numTargets = _targets.length;\n        if (numTargets != deployment.targets) {\n            revert IncorrectNumberOfTargets();\n        }\n\n        ChugSplashTarget memory target;\n        bytes32[] memory proof;\n        for (uint256 i = 0; i < numTargets; i++) {\n            target = _targets[i];\n            proof = _proofs[i];\n\n            if (target.contractKindHash == IMMUTABLE_CONTRACT_KIND_HASH) {\n                revert OnlyProxiesAllowed();\n            }\n\n            if (\n                !MerkleTree.verify(\n                    deployment.targetRoot,\n                    keccak256(\n                        abi.encode(\n                            target.projectName,\n                            target.referenceName,\n                            target.addr,\n                            target.implementation,\n                            target.contractKindHash\n                        )\n                    ),\n                    i,\n                    proof,\n                    deployment.targets\n                )\n            ) {\n                revert InvalidMerkleProof();\n            }\n\n            // Get the proxy type and adapter for this reference name.\n            address adapter = registry.adapters(target.contractKindHash);\n            if (adapter == address(0)) {\n                revert InvalidContractKind();\n            }\n\n            // Upgrade the proxy's implementation contract.\n            (bool success, ) = adapter.delegatecall(\n                abi.encodeCall(IProxyAdapter.finalizeUpgrade, (target.addr, target.implementation))\n            );\n            if (!success) {\n                revert FailedToFinalizeUpgrade();\n            }\n            emit ProxyUpgraded(\n                activeDeploymentId,\n                target.addr,\n                target.projectName,\n                target.referenceName\n            );\n            registry.announceWithData(\"ProxyUpgraded\", abi.encodePacked(target.addr));\n        }\n\n        _completeDeployment(deployment);\n\n        _payExecutorAndProtocol(initialGasLeft, deployment.remoteExecution);\n    }\n\n    /**\n     * @notice Determines if a given address is allowed to propose deployments.\n     *\n     * @param _addr Address to check.\n     *\n     * @return True if the address is allowed to propose deployments, otherwise false.\n     */\n    function isProposer(address _addr) public view returns (bool) {\n        return\n            (allowManagedProposals && managedService.hasRole(MANAGED_PROPOSER_ROLE, _addr)) ||\n            proposers[_addr] ||\n            _addr == owner();\n    }\n\n    /**\n     * @notice Returns the total debt owed to executors and the protocol creators.\n     *\n     * @return Total debt owed to executors and the protocol creators.\n     */\n    function totalDebt() public view returns (uint256) {\n        return totalExecutorDebt + totalProtocolDebt;\n    }\n\n    /**\n     * @notice Queries the selected executor for a given project/deployment. This will return\n       address(0) if the deployment is being self-executed by the owner.\n     *\n     * @param _deploymentId ID of the deployment to query.\n     *\n     * @return Address of the selected executor.\n     */\n    function getSelectedExecutor(bytes32 _deploymentId) public view returns (address) {\n        DeploymentState storage deployment = _deployments[_deploymentId];\n        return deployment.selectedExecutor;\n    }\n\n    /**\n     * @notice Modifies a storage slot value within a proxy contract.\n     *\n     * @param _deployment The current deployment state struct.\n     * @param _action The `SET_STORAGE` action to execute.\n     * @param _actionIndex The index of the action.\n     */\n    function _setProxyStorage(\n        DeploymentState memory _deployment,\n        RawChugSplashAction memory _action,\n        uint256 _actionIndex\n    ) internal {\n        if (_deployment.status != DeploymentStatus.PROXIES_INITIATED) {\n            revert ProxiesAreNotInitiated();\n        }\n\n        // Get the adapter for this reference name.\n        address adapter = registry.adapters(_action.contractKindHash);\n\n        if (_action.contractKindHash == IMMUTABLE_CONTRACT_KIND_HASH) {\n            revert OnlyProxiesAllowed();\n        }\n\n        (bytes32 key, uint8 offset, bytes memory val) = abi.decode(\n            _action.data,\n            (bytes32, uint8, bytes)\n        );\n        // Delegatecall the adapter to call `setStorage` on the proxy.\n        // slither-disable-next-line controlled-delegatecall\n        (bool success, ) = adapter.delegatecall(\n            abi.encodeCall(IProxyAdapter.setStorage, (_action.addr, key, offset, val))\n        );\n        if (!success) {\n            revert SetStorageFailed();\n        }\n\n        emit SetProxyStorage(activeDeploymentId, _action.addr, _msgSender(), _actionIndex);\n        registry.announce(\"SetProxyStorage\");\n    }\n\n    /**\n     * @notice Attempts to deploy a non-proxy contract. The deployment will be skipped if a contract\n     * already exists at the Create3 address. The entire deployment will be cancelled if the\n       contract fails to be deployed, which should only occur if its constructor reverts.\n     *\n     * @param _deployment The current deployment state struct. The data location is \"storage\"\n       because we\n     * may modify one of the struct's fields.\n     * @param _action The `DEPLOY_CONTRACT` action to execute.\n     * @param _actionIndex The index of the action.\n     */\n    function _attemptContractDeployment(\n        DeploymentState storage _deployment,\n        RawChugSplashAction memory _action,\n        uint256 _actionIndex\n    ) internal {\n        if (_deployment.status != DeploymentStatus.APPROVED) {\n            revert DeploymentIsNotApproved();\n        }\n\n        (bytes32 salt, bytes memory creationCodeWithConstructorArgs) = abi.decode(\n            _action.data,\n            (bytes32, bytes)\n        );\n\n        string memory referenceName = _action.referenceName;\n\n        // Get the expected address of the contract. We delegatecall the Create3 contract because\n        // the deployer of the contract is the ChugSplashManager.\n        (bool success, bytes memory expectedAddressBytes) = create3.delegatecall(\n            abi.encodeCall(ICreate3.getAddress, (salt))\n        );\n\n        if (!success) {\n            revert FailedToGetAddress();\n        }\n\n        address expectedAddress = abi.decode(expectedAddressBytes, (address));\n\n        // Check if the contract has already been deployed.\n        if (expectedAddress.code.length > 0) {\n            // Skip deploying the contract if it already exists. Execution would halt if we attempt\n            // to deploy a contract that has already been deployed at the same address.\n            emit ContractDeploymentSkipped(\n                referenceName,\n                expectedAddress,\n                activeDeploymentId,\n                referenceName,\n                _actionIndex\n            );\n            registry.announce(\"ContractDeploymentSkipped\");\n        } else {\n            // We delegatecall the Create3 contract so that the ChugSplashManager address is used in\n            // the address calculation of the deployed contract.\n            (bool deploySuccess, bytes memory actualAddressBytes) = create3.delegatecall(\n                abi.encodeCall(ICreate3.deploy, (salt, creationCodeWithConstructorArgs, 0))\n            );\n\n            require(deploySuccess, string.concat(\"Failed to deploy: \", referenceName));\n\n            address actualAddress = abi.decode(actualAddressBytes, (address));\n\n            if (expectedAddress == actualAddress) {\n                // Contract was deployed successfully.\n                emit ContractDeployed(\n                    referenceName,\n                    actualAddress,\n                    activeDeploymentId,\n                    referenceName,\n                    _action.contractKindHash,\n                    keccak256(creationCodeWithConstructorArgs)\n                );\n                registry.announce(\"ContractDeployed\");\n            } else {\n                // Contract deployment failed. Could happen if insufficient gas is supplied to this\n                // transaction or if the creation bytecode has logic that causes the call to fail\n                // (e.g. a constructor that reverts).\n\n                // Give the owner's bond to the executor.\n                executorDebt[_msgSender()] += ownerBondAmount;\n                totalExecutorDebt += ownerBondAmount;\n\n                emit DeploymentFailed(\n                    referenceName,\n                    expectedAddress,\n                    activeDeploymentId,\n                    referenceName,\n                    _actionIndex\n                );\n                registry.announceWithData(\"DeploymentFailed\", abi.encodePacked(activeDeploymentId));\n\n                activeDeploymentId = bytes32(0);\n                _deployment.status = DeploymentStatus.FAILED;\n            }\n        }\n    }\n\n    /**\n     * @notice Mark the deployment as completed and reset the active deployment ID.\n\n     * @param _deployment The current deployment state struct. The data location is \"s  rage\"\n       because we modify the struct.\n     */\n    function _completeDeployment(DeploymentState storage _deployment) internal {\n        _deployment.status = DeploymentStatus.COMPLETED;\n\n        emit ChugSplashDeploymentCompleted(activeDeploymentId, _msgSender());\n        registry.announce(\"ChugSplashDeploymentCompleted\");\n\n        activeDeploymentId = bytes32(0);\n    }\n\n    /**\n     * @notice Pay the executor and protocol creator based on the transaction's gas price and the\n       gas used. Note that no payment occurs for self-executed deployments.\n\n        * @param _initialGasLeft Gas left at the beginning of this transaction.\n        * @param _remoteExecution True if the deployment is being executed remotely, otherwise\n          false.\n     */\n    function _payExecutorAndProtocol(uint256 _initialGasLeft, bool _remoteExecution) internal {\n        if (!_remoteExecution) {\n            return;\n        }\n\n        uint256 gasPrice = gasPriceCalculator.getGasPrice();\n\n        // Estimate the gas used by the calldata. Note that, in general, 16 gas is used per non-zero\n        // byte of calldata and 4 gas is used per zero-byte of calldata. We use 16 for simplicity\n        // and because we must overestimate the executor's payment to ensure that it doesn't lose\n        // money.\n        uint256 calldataGasUsed = _msgData().length * 16;\n\n        // Estimate the total gas used in this transaction. We calculate this by adding the gas used\n        // by the calldata with the net estimated gas used by this function so far (i.e.\n        // `_initialGasLeft - gasleft()`). We add 100k to account for the intrinsic gas cost (21k)\n        // and the operations that occur after we assign a value to `estGasUsed`. Note that it's\n        // crucial for this estimate to be greater than the actual gas used by this transaction so\n        // that the executor doesn't lose money`.\n        uint256 estGasUsed = 100_000 + calldataGasUsed + _initialGasLeft - gasleft();\n\n        uint256 executorPayment = (gasPrice * estGasUsed * (100 + executorPaymentPercentage)) / 100;\n        uint256 protocolPayment = (gasPrice * estGasUsed * (protocolPaymentPercentage)) / 100;\n\n        // Add the executor's payment to the executor debt.\n        totalExecutorDebt += executorPayment;\n        executorDebt[_msgSender()] += executorPayment;\n\n        // Add the protocol's payment to the protocol debt.\n        totalProtocolDebt += protocolPayment;\n    }\n\n    /**\n     * @notice If the deployment is being executed remotely, this function will check that the\n     * caller is the selected executor. If the deployment is being executed locally, this function\n     * will check that the caller is the owner. Throws an error otherwise.\n\n       @param _remoteExecution True if the deployment is being executed remotely, otherwise false.\n\n     */\n    function _assertCallerIsOwnerOrSelectedExecutor(bool _remoteExecution) internal view {\n        if (_remoteExecution == true && getSelectedExecutor(activeDeploymentId) != _msgSender()) {\n            revert CallerIsNotSelectedExecutor();\n        } else if (_remoteExecution == false && owner() != _msgSender()) {\n            revert CallerIsNotOwner();\n        }\n    }\n\n    /**\n     * @notice Use the ERC2771Recipient implementation to get the sender of the current call.\n     */\n    function _msgSender()\n        internal\n        view\n        override(ContextUpgradeable, ERC2771ContextUpgradeable)\n        returns (address sender)\n    {\n        sender = ERC2771ContextUpgradeable._msgSender();\n    }\n\n    /**\n     * @notice Use the ERC2771Recipient implementation to get the data of the current call.\n     */\n    function _msgData()\n        internal\n        view\n        override(ContextUpgradeable, ERC2771ContextUpgradeable)\n        returns (bytes calldata)\n    {\n        return ERC2771ContextUpgradeable._msgData();\n    }\n}\n"},"contracts/ChugSplashManagerEvents.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract ChugSplashManagerEvents {\n    /**\n     * @notice Emitted when a deployment is proposed.\n\n     * @param deploymentId   ID of the deployment that was proposed.\n     * @param actionRoot   Root of the Merkle tree containing the actions for the deployment.\n     * @param targetRoot   Root of the Merkle tree containing the targets for the deployment.\n     * @param numActions   Number of actions in the deployment.\n     * @param numTargets   Number of targets in the deployment.\n     * @param numImmutableContracts   Number of non-proxy contracts in the deployment.\n     * @param configUri  URI of the config file that can be used to fetch the deployment.\n     * @param remoteExecution Boolean indicating if the deployment should be remotely executed.\n     * @param proposer     Address of the account that proposed the deployment.\n     */\n    event ChugSplashDeploymentProposed(\n        bytes32 indexed deploymentId,\n        bytes32 actionRoot,\n        bytes32 targetRoot,\n        uint256 numActions,\n        uint256 numTargets,\n        uint256 numImmutableContracts,\n        string configUri,\n        bool remoteExecution,\n        address proposer\n    );\n\n    /**\n     * @notice Emitted when a ChugSplash deployment is approved.\n     *\n     * @param deploymentId ID of the deployment that was approved.\n     */\n    event ChugSplashDeploymentApproved(bytes32 indexed deploymentId);\n\n    /**\n     * @notice Emitted when a storage slot in a proxy is modified.\n     *\n     * @param deploymentId Current deployment ID.\n     * @param proxy        Address of the proxy.\n     * @param executor Address of the caller for this transaction.\n     * @param actionIndex Index of this action.\n     */\n    event SetProxyStorage(\n        bytes32 indexed deploymentId,\n        address indexed proxy,\n        address indexed executor,\n        uint256 actionIndex\n    );\n\n    /**\n     * @notice Emitted when a deployment is initiated.\n     *\n     * @param deploymentId   ID of the active deployment.\n     * @param executor        Address of the caller that initiated the deployment.\n     */\n    event ProxiesInitiated(bytes32 indexed deploymentId, address indexed executor);\n\n    event ProxyUpgraded(\n        bytes32 indexed deploymentId,\n        address indexed proxy,\n        string projectName,\n        string referenceName\n    );\n\n    /**\n     * @notice Emitted when a deployment is completed.\n     *\n     * @param deploymentId   ID of the active deployment.\n     * @param executor        Address of the caller that initiated the deployment.\n     */\n    event ChugSplashDeploymentCompleted(bytes32 indexed deploymentId, address indexed executor);\n\n    /**\n     * @notice Emitted when the owner of this contract cancels an active deployment.\n     *\n     * @param deploymentId        Deployment ID that was cancelled.\n     * @param owner           Address of the owner that cancelled the deployment.\n     * @param actionsExecuted Total number of completed actions before cancellation.\n     */\n    event ChugSplashDeploymentCancelled(\n        bytes32 indexed deploymentId,\n        address indexed owner,\n        uint256 actionsExecuted\n    );\n\n    /**\n     * @notice Emitted when ownership of a proxy is transferred away from this contract.\n     *\n     * @param proxy            Address of the proxy that was exported.\n     * @param contractKindHash The proxy's contract kind hash, which indicates the proxy's type.\n     * @param newOwner         Address of the new owner of the proxy.\n     */\n    event ProxyExported(address indexed proxy, bytes32 indexed contractKindHash, address newOwner);\n\n    /**\n     * @notice Emitted when a deployment is claimed by a remote executor.\n     *\n     * @param deploymentId ID of the deployment that was claimed.\n     * @param executor Address of the executor that claimed the deployment.\n     */\n    event ChugSplashDeploymentClaimed(bytes32 indexed deploymentId, address indexed executor);\n\n    /**\n     * @notice Emitted when an executor claims a payment.\n     *\n     * @param executor The executor being paid.\n     * @param withdrawn   Amount of ETH withdrawn.\n     * @param remaining  Amount of ETH remaining to be withdrawn by the executor.\n     */\n    event ExecutorPaymentClaimed(address indexed executor, uint256 withdrawn, uint256 remaining);\n\n    /**\n     * @notice Emitted when the owner withdraws ETH from this contract.\n     *\n     * @param owner  Address of the owner.\n     * @param amount ETH amount withdrawn.\n     */\n    event OwnerWithdrewETH(address indexed owner, uint256 amount);\n\n    /**\n     * @notice Emitted when the owner of this contract adds or removes a proposer.\n     *\n     * @param proposer Address of the proposer that was added or removed.\n     * @param isProposer Boolean indicating if the proposer was added or removed.\n     * @param owner Address of the owner.\n     */\n    event ProposerSet(address indexed proposer, bool indexed isProposer, address indexed owner);\n\n    /**\n     * @notice Emitted when the owner of this contract toggles the ability of the ManagedService\n       contract to propose deployments.\n     *\n        * @param isManaged Boolean indicating if the ManagedService contract is allowed to propose\n          deployments.\n        * @param owner Address of the owner.\n     */\n    event ToggledManagedProposals(bool isManaged, address indexed owner);\n\n    /**\n     * @notice Emitted when ETH is deposited in this contract.\n     *\n     * @param from   Address of the account that deposited ETH.\n     * @param amount ETH amount deposited.\n     */\n    event ETHDeposited(address indexed from, uint256 indexed amount);\n\n    /**\n     * @notice Emitted when a contract is deployed by this contract.\n     *\n     * @param referenceNameHash Hash of the reference name that corresponds to this contract.\n     * @param contractAddress   Address of the deployed contract.\n     * @param deploymentId          ID of the deployment in which the contract was deployed.\n     * @param referenceName     String reference name.\n     * @param contractKindHash Hash of the contract kind.\n     * @param creationCodeWithArgsHash Hash of the creation code with constructor args.\n     */\n    event ContractDeployed(\n        string indexed referenceNameHash,\n        address indexed contractAddress,\n        bytes32 indexed deploymentId,\n        string referenceName,\n        bytes32 contractKindHash,\n        bytes32 creationCodeWithArgsHash\n    );\n\n    /**\n     * @notice Emitted when a contract deployment is skipped. This occurs when a contract already\n       exists at the Create3 address.\n     *\n     * @param referenceNameHash Hash of the reference name that corresponds to this contract.\n     * @param contractAddress   Address of the deployed contract.\n     * @param deploymentId          ID of the deployment in which the contract was deployed.\n     * @param referenceName     String reference name.\n     * @param actionIndex Index of the action that attempted to deploy the contract.\n     */\n    event ContractDeploymentSkipped(\n        string indexed referenceNameHash,\n        address indexed contractAddress,\n        bytes32 indexed deploymentId,\n        string referenceName,\n        uint256 actionIndex\n    );\n\n    /**\n     * @notice Emitted when a deployment fails. This should only occur if the constructor of a\n       deployed contract reverts.\n     *\n     * @param referenceNameHash Hash of the reference name that corresponds to this contract.\n     * @param expectedAddress   Expected Create3 address of the contract.\n     * @param deploymentId      ID of the deployment in which the contract deployment was attempted.\n     * @param referenceName     String reference name.\n     * @param actionIndex Index of the action that attempted to deploy the contract.\n     */\n    event DeploymentFailed(\n        string indexed referenceNameHash,\n        address indexed expectedAddress,\n        bytes32 indexed deploymentId,\n        string referenceName,\n        uint256 actionIndex\n    );\n}\n"},"contracts/ChugSplashManagerProxy.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { Proxy } from \"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\";\nimport { ChugSplashRegistry } from \"./ChugSplashRegistry.sol\";\nimport { IChugSplashManager } from \"./interfaces/IChugSplashManager.sol\";\n\n/**\n * @title ChugSplashManagerProxy\n * @notice Proxy contract owned by the user. This contract delegatecalls into the ChugSplashManager\n   contract to perform deployments. This proxy is designed to be upgradable by the user in a fully\n   opt-in manner. New implementations of the ChugSplashManager must be approved by the\n   ChugSplashRegistry contract to prevent malicious ChugSplashManager implementations from being\n   used.\n */\ncontract ChugSplashManagerProxy is Proxy {\n    /**\n     * @notice Address of the ChugSplashRegistry.\n     */\n    ChugSplashRegistry public immutable registry;\n\n    /**\n     * @notice Modifier that throws an error if a deployment is currently in progress.\n     */\n    modifier isNotExecuting() {\n        address impl = _getImplementation();\n        require(\n            impl == address(0) || !IChugSplashManager(impl).isExecuting(),\n            \"ChugSplashManagerProxy: execution in progress\"\n        );\n        _;\n    }\n\n    /**\n     * @notice Modifier that throws an error if the new implementation is not approved by the\n       ChugSplashRegistry.\n\n       @param _implementation The address of the new implementation.\n     */\n    modifier isApprovedImplementation(address _implementation) {\n        require(\n            registry.managerImplementations(_implementation),\n            \"ChugSplashManagerProxy: unapproved manager\"\n        );\n        _;\n    }\n\n    /**\n     * @param _registry              The ChugSplashRegistry's address.\n     * @param _admin                 Owner of this contract. Usually the end-user.\n     */\n    constructor(ChugSplashRegistry _registry, address _admin) payable Proxy(_admin) {\n        registry = _registry;\n    }\n\n    /**\n     * @notice Sets a new implementation for this proxy. Only the owner can call this function. This\n               function can only be called when a deployment is not in progress to prevent\n               unexpected behavior. The new implementation must be approved by the\n               ChugSplashRegistry to prevent malicious ChugSplashManager implementations.\n     */\n    function upgradeTo(\n        address _implementation\n    ) public override proxyCallIfNotAdmin isNotExecuting isApprovedImplementation(_implementation) {\n        super.upgradeTo(_implementation);\n    }\n\n    /**\n     * @notice Sets a new implementation for this proxy and delegatecalls an arbitrary function.\n               Only the owner can call this function. This function can only be called when a\n               deployment is not in progress to prevent unexpected behavior. The new implementation\n               must be approved by the ChugSplashRegistry to prevent malicious ChugSplashManager\n               implementations.\n     */\n    function upgradeToAndCall(\n        address _implementation,\n        bytes calldata _data\n    )\n        public\n        payable\n        override\n        proxyCallIfNotAdmin\n        isNotExecuting\n        isApprovedImplementation(_implementation)\n        returns (bytes memory)\n    {\n        return super.upgradeToAndCall(_implementation, _data);\n    }\n}\n"},"contracts/ChugSplashRegistry.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { ChugSplashManagerProxy } from \"./ChugSplashManagerProxy.sol\";\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { Initializable } from \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport { IChugSplashManager } from \"./interfaces/IChugSplashManager.sol\";\nimport { Semver } from \"./Semver.sol\";\nimport { ChugSplashRegistryEvents } from \"./ChugSplashRegistryEvents.sol\";\nimport { IChugSplashRegistry } from \"./interfaces/IChugSplashRegistry.sol\";\nimport { Version } from \"./ChugSplashDataTypes.sol\";\n\n/**\n * @title ChugSplashRegistry\n * @notice The ChugSplashRegistry is the root contract for the ChugSplash deployment system. This\n *         contract allows callers to register new projects. Also, every event emitted in the\n *         ChugSplash system is announced through this contract. This makes it easy for clients to\n *         find and index events that occur throughout the deployment process. Lastly, the owner of\n *         this contract is able to add support for new contract kinds (e.g. OpenZeppelin's\n           Transparent proxy). The owner can also new versions of the ChugSplashManager\n *         implementation.\n *\n */\ncontract ChugSplashRegistry is\n    Ownable,\n    Initializable,\n    ChugSplashRegistryEvents,\n    IChugSplashRegistry\n{\n    /**\n     * @notice Mapping of organization IDs to ChugSplashManagerProxy addresses.\n     */\n    mapping(bytes32 => address payable) public projects;\n\n    /**\n     * @notice Mapping of ChugSplashManagerProxy addresses to a boolean indicating whether or not\n     *         it was deployed by this contract.\n     */\n    mapping(address => bool) public managerProxies;\n\n    /**\n     * @notice Mapping of contract kind hashes to adapter contract addresses.\n     */\n    mapping(bytes32 => address) public adapters;\n\n    /**\n     * @notice Mapping of ChugSplashManager implementations to a boolean indicating whether or not\n     *         it's a valid implementation.\n     */\n    mapping(address => bool) public managerImplementations;\n\n    /**\n     * @notice Mapping of (major, minor, patch) versions to ChugSplashManager implementation\n     *         address.\n     */\n    mapping(uint => mapping(uint => mapping(uint => address))) public versions;\n\n    /**\n     * @param _owner Address of the owner of the registry.\n     */\n    constructor(address _owner) {\n        _transferOwnership(_owner);\n    }\n\n    /**\n     * @notice Finalizes the registration of an organization ID by deploying a new\n       ChugSplashManagerProxy contract and setting the provided owner as the initial owner of the\n       new project.\n     *\n     * @param _organizationID Organization ID being registered.\n     * @param _owner        Initial owner for the new project.\n     * @param _version   Version of the ChugSplashManager implementation.\n     * @param _data      Any data to pass to the ChugSplashManager initializer.\n     */\n    function finalizeRegistration(\n        bytes32 _organizationID,\n        address _owner,\n        Version memory _version,\n        bytes memory _data\n    ) external {\n        require(\n            address(projects[_organizationID]) == address(0),\n            \"ChugSplashRegistry: org ID already registered\"\n        );\n\n        address managerImpl = versions[_version.major][_version.minor][_version.patch];\n        require(managerImplementations[managerImpl], \"ChugSplashRegistry: invalid manager version\");\n\n        ChugSplashManagerProxy managerProxy = new ChugSplashManagerProxy{ salt: _organizationID }(\n            this,\n            address(this)\n        );\n\n        require(\n            address(managerProxy) != address(0),\n            \"ChugSplashRegistry: failed to deploy manager proxy\"\n        );\n\n        projects[_organizationID] = payable(address(managerProxy));\n        managerProxies[address(managerProxy)] = true;\n\n        bytes memory retdata = managerProxy.upgradeToAndCall(\n            managerImpl,\n            abi.encodeCall(IChugSplashManager.initialize, _data)\n        );\n\n        // Change manager proxy admin to the Org owner\n        managerProxy.changeAdmin(_owner);\n\n        emit ChugSplashRegistrationFinalized(\n            _organizationID,\n            managerImpl,\n            _owner,\n            msg.sender,\n            retdata\n        );\n    }\n\n    /**\n     * @notice Allows ChugSplashManager contracts to announce events. Only callable by\n       ChugSplashManagerProxy contracts.\n     *\n     * @param _event Name of the event to announce.\n     */\n    function announce(string memory _event) external {\n        require(\n            managerProxies[msg.sender],\n            \"ChugSplashRegistry: events can only be announced by managers\"\n        );\n\n        emit EventAnnounced(_event, msg.sender, _event);\n    }\n\n    /**\n     * @notice Allows ChugSplashManager contracts to announce events, including a field for\n     *         arbitrary data.  Only callable by ChugSplashManagerProxy contracts.\n     *\n     * @param _event Name of the event to announce.\n     * @param _data  Arbitrary data to include in the announced event.\n     */\n    function announceWithData(string memory _event, bytes memory _data) external {\n        require(\n            managerProxies[msg.sender],\n            \"ChugSplashRegistry: events can only be announced by managers\"\n        );\n\n        emit EventAnnouncedWithData(_event, msg.sender, _data, _event, _data);\n    }\n\n    /**\n     * @notice Adds a new contract kind with a corresponding adapter. Only callable by the owner of\n       the ChugSplashRegistry.\n     *\n     * @param _contractKindHash Hash representing the contract kind.\n     * @param _adapter   Address of the adapter for this contract kind.\n     */\n    function addContractKind(bytes32 _contractKindHash, address _adapter) external onlyOwner {\n        require(\n            adapters[_contractKindHash] == address(0),\n            \"ChugSplashRegistry: contract kind has an existing adapter\"\n        );\n\n        adapters[_contractKindHash] = _adapter;\n\n        emit ContractKindAdded(_contractKindHash, _adapter);\n    }\n\n    /**\n     * @notice Adds a new version of the ChugSplashManager implementation. Only callable by the\n       owner of the ChugSplashRegistry.\n     *  The version is specified by the `Semver` contract\n     *      attached to the implementation. Throws an error if the version\n     *      has already been set.\n     *\n     * @param _manager Address of the ChugSplashManager implementation to add.\n     */\n    function addVersion(address _manager) external onlyOwner {\n        Version memory version = Semver(_manager).version();\n        uint256 major = version.major;\n        uint256 minor = version.minor;\n        uint256 patch = version.patch;\n\n        require(\n            versions[major][minor][patch] == address(0),\n            \"ChugSplashRegistry: version already set\"\n        );\n\n        managerImplementations[_manager] = true;\n        versions[major][minor][patch] = _manager;\n\n        emit VersionAdded(major, minor, patch, _manager);\n    }\n}\n"},"contracts/ChugSplashRegistryEvents.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract ChugSplashRegistryEvents {\n    /**\n     * @notice Emitted whenever registration is finalized for a given organization ID.\n     *\n     * @param organizationID Organization ID that was registered.\n     * @param managerImpl    Address of the initial ChugSplashManager implementation for this\n     *                       project.\n     * @param owner          Address of the initial owner of the project.\n     * @param caller         Address that finalized registration.\n     * @param retdata        Return data from the ChugSplashManager initializer.\n     */\n    event ChugSplashRegistrationFinalized(\n        bytes32 indexed organizationID,\n        address indexed managerImpl,\n        address owner,\n        address caller,\n        bytes retdata\n    );\n\n    /**\n     * @notice Emitted whenever a ChugSplashManager contract announces an event on the registry. We\n     *         use this to avoid needing a complex indexing system when we're trying to find events\n     *         emitted by the various manager contracts.\n     *\n     * @param eventNameHash Hash of the name of the event being announced.\n     * @param manager       Address of the ChugSplashManagerProxy announcing an event.\n     * @param eventName     Name of the event being announced.\n     */\n    event EventAnnounced(string indexed eventNameHash, address indexed manager, string eventName);\n\n    /**\n     * @notice Emitted whenever a ChugSplashManager contract wishes to announce an event on the\n     *         registry, including a field for arbitrary data. We use this to avoid needing a\n     *         complex indexing system when we're trying to find events emitted by the various\n     *         manager contracts.\n     *\n     * @param eventNameHash Hash of the name of the event being announced.\n     * @param manager       Address of the ChugSplashManagerProxy announcing an event.\n     * @param dataHash      Hash of the extra data sent by the ChugSplashManager.\n     * @param eventName     Name of the event being announced.\n     * @param data          The extra data.\n     */\n    event EventAnnouncedWithData(\n        string indexed eventNameHash,\n        address indexed manager,\n        bytes indexed dataHash,\n        string eventName,\n        bytes data\n    );\n\n    /**\n     * @notice Emitted whenever a new contract kind is added.\n     *\n     * @param contractKindHash Hash representing the contract kind.\n     * @param adapter          Address of the adapter for the contract kind.\n     */\n    event ContractKindAdded(bytes32 contractKindHash, address adapter);\n\n    /**\n     * @notice Emitted whenever a new ChugSplashManager implementation is added.\n     *\n     * @param major  Major version of the ChugSplashManager.\n     * @param minor     Minor version of the ChugSplashManager.\n     * @param patch    Patch version of the ChugSplashManager.\n     * @param manager Address of the ChugSplashManager implementation.\n     */\n    event VersionAdded(\n        uint256 indexed major,\n        uint256 indexed minor,\n        uint256 indexed patch,\n        address manager\n    );\n}\n"},"contracts/DefaultCreate3.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { CREATE3 } from \"solmate/src/utils/CREATE3.sol\";\nimport { Bytes32AddressLib } from \"solmate/src/utils/Bytes32AddressLib.sol\";\nimport { ICreate3 } from \"./interfaces/ICreate3.sol\";\n\n/**\n * @title DefaultCreate3\n * @notice Default implementation of the ICreate3 interface. The default Create3 formula is used on\n           Ethereum and networks that are EVM-equivalent, or close to it.\n */\ncontract DefaultCreate3 is ICreate3 {\n    using Bytes32AddressLib for bytes32;\n\n    bytes internal constant PROXY_BYTECODE = hex\"67_36_3d_3d_37_36_3d_34_f0_3d_52_60_08_60_18_f3\";\n\n    bytes32 internal constant PROXY_BYTECODE_HASH = keccak256(PROXY_BYTECODE);\n\n    /**\n     * @inheritdoc ICreate3\n     */\n    function deploy(\n        bytes32 _salt,\n        bytes memory _creationCode,\n        uint256 _value\n    ) public returns (address deployed) {\n        return CREATE3.deploy(_salt, _creationCode, _value);\n    }\n\n    /**\n     * @inheritdoc ICreate3\n     */\n    function getAddress(bytes32 _salt) external view returns (address) {\n        return CREATE3.getDeployed(_salt);\n    }\n\n    function getAddressFromDeployer(\n        bytes32 _salt,\n        address _deployer\n    ) public pure returns (address) {\n        address proxy = keccak256(\n            abi.encodePacked(\n                // Prefix:\n                bytes1(0xFF),\n                // Creator:\n                _deployer,\n                // Salt:\n                _salt,\n                // Bytecode hash:\n                PROXY_BYTECODE_HASH\n            )\n        ).fromLast20Bytes();\n\n        return\n            keccak256(\n                abi.encodePacked(\n                    // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01)\n                    // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex)\n                    hex\"d6_94\",\n                    proxy,\n                    hex\"01\" // Nonce of the proxy contract (1)\n                )\n            ).fromLast20Bytes();\n    }\n}\n"},"contracts/DefaultGasPriceCalculator.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { IGasPriceCalculator } from \"./interfaces/IGasPriceCalculator.sol\";\n\n/**\n * @title DefaultGasPriceCalculator\n * @notice Default implementation of the IGasPriceCalculator interface. This is used on Ethereum and\n           networks that have the same semantics for `tx.gasprice`.\n */\ncontract DefaultGasPriceCalculator is IGasPriceCalculator {\n    /**\n     * @inheritdoc IGasPriceCalculator\n     */\n    function getGasPrice() external view returns (uint256) {\n        return tx.gasprice;\n    }\n}\n"},"contracts/Import.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { Forwarder } from \"@thirdweb-dev/contracts/forwarder/Forwarder.sol\";\n"},"contracts/interfaces/IChugSplashManager.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.7.4 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport { IChugSplashRegistry } from \"./IChugSplashRegistry.sol\";\nimport {\n    DeploymentState,\n    RawChugSplashAction,\n    ChugSplashTarget,\n    Version\n} from \"../ChugSplashDataTypes.sol\";\n\n/**\n * @title ChugSplashManager\n * @notice Interface that must be inherited by the ChugSplashManager contract.\n */\ninterface IChugSplashManager {\n    /**\n     * @notice Initializes this contract. Must only be callable one time, which should occur\n       immediately after contract creation. This is necessary because this contract is meant to\n       exist as an implementation behind proxies. Note that the implementation must be initialized\n       with all zero-bytes to prevent anyone from owning it.\n     *\n     * @param _data Arbitrary initialization data. This ensures that a consistent interface can be\n                    used to initialize future versions of the ChugSplashManager.\n     *\n     * @return Arbitrary bytes.\n     */\n    function initialize(bytes memory _data) external returns (bytes memory);\n\n    /**\n     * @notice Indicates whether or not a deployment is currently being executed.\n     *\n     * @return Whether or not a deployment is currently being executed.\n     */\n    function isExecuting() external view returns (bool);\n\n    /**\n     * @notice The ChugSplashRegistry.\n     *\n     * @return Address of the ChugSplashRegistry.\n     */\n    function registry() external view returns (IChugSplashRegistry);\n\n    /**\n     * @notice Organization ID for this contract.\n     *\n     * @return 32-byte organization ID.\n     */\n    function organizationID() external view returns (bytes32);\n\n    function cancelActiveChugSplashDeployment() external;\n\n    function exportProxy(\n        address payable _proxy,\n        bytes32 _contractKindHash,\n        address _newOwner\n    ) external;\n\n    function isProposer(address _addr) external view returns (bool);\n\n    function propose(\n        bytes32 _actionRoot,\n        bytes32 _targetRoot,\n        uint256 _numActions,\n        uint256 _numTargets,\n        uint256 _numImmutableContracts,\n        string memory _configUri,\n        bool _remoteExecution\n    ) external;\n\n    function approve(bytes32 _deploymentId) external;\n\n    function activeDeploymentId() external view returns (bytes32);\n\n    function deployments(bytes32 _deploymentId) external view returns (DeploymentState memory);\n\n    function executeActions(\n        RawChugSplashAction[] memory _actions,\n        uint256[] memory _actionIndexes,\n        bytes32[][] memory _proofs\n    ) external;\n\n    function initiateUpgrade(\n        ChugSplashTarget[] memory _targets,\n        bytes32[][] memory _proofs\n    ) external;\n\n    function finalizeUpgrade(\n        ChugSplashTarget[] memory _targets,\n        bytes32[][] memory _proofs\n    ) external;\n}\n"},"contracts/interfaces/IChugSplashRegistry.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.7.4 <0.9.0;\npragma experimental ABIEncoderV2;\n\nimport { Version } from \"../ChugSplashDataTypes.sol\";\n\ninterface IChugSplashRegistry {\n    function projects(bytes32) external view returns (address payable);\n\n    function finalizeRegistration(\n        bytes32 _organizationID,\n        address _owner,\n        Version memory _version,\n        bytes memory _data\n    ) external;\n\n    function managerProxies(address) external view returns (bool);\n\n    function addContractKind(bytes32 _contractKindHash, address _adapter) external;\n\n    function addVersion(address _manager) external;\n\n    function announce(string memory _event) external;\n\n    function announceWithData(string memory _event, bytes memory _data) external;\n\n    function adapters(bytes32) external view returns (address);\n}\n"},"contracts/interfaces/ICreate3.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\n/**\n * @title ICreate3\n * @notice Interface for a Create3 contract. Normally, this functionality would in a library.\n   Instead, we put it in a contract so that other contracts can use non-standard Create3 formulas in\n   a modular way. If we opted for a library to implement this functionality, we would need separate\n   copies of each contract that uses the library, where each contract would use a different\n   implementation of the Create3 formula.\n */\ninterface ICreate3 {\n    // The creation code isn't used in the address calculation.\n    function deploy(\n        bytes32 _salt,\n        bytes memory _creationCode,\n        uint256 _value\n    ) external returns (address deployed);\n\n    function getAddress(bytes32 _salt) external view returns (address);\n\n    function getAddressFromDeployer(\n        bytes32 _salt,\n        address _deployer\n    ) external view returns (address);\n}\n"},"contracts/interfaces/ICrossChainAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { RegistrationInfo, CrossChainMessageInfo } from \"../ChugSplashDataTypes.sol\";\n\n/**\n * @title ICrossChainAdapter\n */\ninterface ICrossChainAdapter {\n    function initiateRegistration(\n        bytes32 _orgID,\n        RegistrationInfo memory _registration,\n        CrossChainMessageInfo memory _message\n    ) external;\n}\n"},"contracts/interfaces/IGasPriceCalculator.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\n/**\n * @title IGasPriceCalculator\n * @notice Interface for a contract that calculates the gas price of a transaction. This is simply\n   `tx.gasprice` on Ethereum and networks that have the same semantics for `tx.gasprice`. On other\n   chains, however, a non-standard gas price may be used.\n */\ninterface IGasPriceCalculator {\n    /**\n     * @notice Returns the gas price of the current transaction.\n     *\n     * @return The gas price of the current transaction.\n     */\n    function getGasPrice() external view returns (uint256);\n}\n"},"contracts/interfaces/IOwnable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.7.4 <0.9.0;\n\ninterface IOwnable {\n    function owner() external view returns (address);\n\n    function renounceOwnership() external;\n\n    function transferOwnership(address newOwner) external;\n}\n"},"contracts/interfaces/IProxyAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\n/**\n * @title IProxyAdapter\n * @notice Interface that must be inherited by each proxy adapter. Proxy adapters allow other\n   contracts to delegatecall into proxies of different types (e.g. Transparent, UUPS, etc.) through\n   a standard interface.\n */\ninterface IProxyAdapter {\n    /**\n     * @notice Initiate a deployment or upgrade of a proxy.\n     *\n     * @param _proxy Address of the proxy.\n     */\n    function initiateUpgrade(address payable _proxy) external;\n\n    /**\n     * @notice Complete a deployment or upgrade of a proxy.\n     *\n     * @param _proxy          Address of the proxy.\n     * @param _implementation Address of the proxy's final implementation.\n     */\n    function finalizeUpgrade(address payable _proxy, address _implementation) external;\n\n    /**\n     * @notice Sets a proxy's storage slot value at a given storage slot key and offset.\n     *\n     * @param _proxy  Address of the proxy to modify.\n     * @param _key     Storage slot key to modify.\n     * @param _offset  Bytes offset of the new storage slot value from the right side of the storage\n       slot. An offset of 0 means the new value will start at the right-most byte of the storage\n       slot.\n     * @param _value New value of the storage slot at the given key and offset. The length of the\n                     value is in the range [1, 32] (inclusive).\n     */\n    function setStorage(\n        address payable _proxy,\n        bytes32 _key,\n        uint8 _offset,\n        bytes memory _value\n    ) external;\n\n    /**\n     * @notice Changes the admin of the proxy. Note that this function is not triggered during a\n               deployment. Instead, it's only triggered if transferring ownership of the UUPS proxy\n               away from the ChugSplashManager, which occurs outside of the deployment process.\n     *\n     * @param _proxy    Address of the proxy.\n     * @param _newAdmin Address of the new admin.\n     */\n    function changeProxyAdmin(address payable _proxy, address _newAdmin) external;\n}\n"},"contracts/interfaces/IProxyUpdater.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\n/**\n * @title IProxyUpdater\n * @notice Interface that must be inherited by each proxy updater. Contracts that\n           inherit from this interface are meant to be set as the implementation of a proxy during\n           an upgrade, then delegatecalled by the proxy's owner to change the value of a storage\n           slot within the proxy.\n */\ninterface IProxyUpdater {\n    /**\n     * @notice Sets a proxy's storage slot value at a given storage slot key and offset.\n     *\n     * @param _key     Storage slot key to modify.\n     * @param _offset  Bytes offset of the new storage slot value from the right side of the storage\n       slot. An offset of 0 means the new value will start at the right-most byte of the storage\n       slot.\n     * @param _value New value of the storage slot at the given key and offset. The length of the\n                     value is in the range [1, 32] (inclusive).\n     */\n    function setStorage(bytes32 _key, uint8 _offset, bytes memory _value) external;\n}\n"},"contracts/ManagedService.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { AccessControl } from \"@openzeppelin/contracts/access/AccessControl.sol\";\n\n/**\n * @title ManagedService\n * @notice Contract controlled by the ChugSplash managed service. This contract allows the managed\n   service to remotely execute deployments, propose deployments, and collect the protocol's fee.\nUsers can opt in to this functionality if they choose to do so.\n */\ncontract ManagedService is AccessControl {\n    bytes32 public constant CALLER_ROLE = keccak256(\"CALLER_ROLE\");\n\n    /**\n     * @notice Role required to collect the protocol creator's payment.\n     */\n    bytes32 internal constant PROTOCOL_PAYMENT_RECIPIENT_ROLE =\n        keccak256(\"PROTOCOL_PAYMENT_RECIPIENT_ROLE\");\n\n    event ExecutedCall(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @notice Emitted when a protocol payment recipient claims a payment.\n     *\n     * @param recipient The recipient that withdrew the funds.\n     * @param amount    Amount of ETH withdrawn.\n     */\n    event ProtocolPaymentClaimed(address indexed recipient, uint256 amount);\n\n    /**\n     * @notice Reverts if the caller is not a protocol payment recipient.\n     */\n    error CallerIsNotProtocolPaymentRecipient();\n\n    /**\n     * @param _owner The address that will be granted the `DEFAULT_ADMIN_ROLE`. This address is the\n       multisig owned by the ChugSplash team.\n     */\n    constructor(address _owner) {\n        _grantRole(bytes32(0), _owner);\n    }\n\n    /**\n     * @notice Executes an arbitrary call to any contract. This is primarily used to claim\n     *         organizations on behalf of users.\n     * @param _to Address of target contract.\n     * @param _data The calldata.\n     */\n    function executeCall(\n        address _to,\n        bytes memory _data,\n        uint256 _value\n    ) external payable onlyRole(CALLER_ROLE) returns (bytes memory) {\n        emit ExecutedCall(msg.sender, _to, _value);\n        (bool success, bytes memory returnData) = _to.call{ value: _value }(_data);\n        require(success, \"PermissionedCaller: call failed\");\n        return returnData;\n    }\n\n    /**\n     * @notice Allows the protocol creators to claim their royalty, which is only earned during\n       remotely executed deployments.\n     */\n    function claimProtocolPayment(uint256 _amount) external {\n        if (!hasRole(PROTOCOL_PAYMENT_RECIPIENT_ROLE, msg.sender)) {\n            revert CallerIsNotProtocolPaymentRecipient();\n        }\n        if (_amount > address(this).balance) {\n            revert(\"ManagedService: Insufficient funds to withdraw protocol payment\");\n        }\n\n        emit ProtocolPaymentClaimed(msg.sender, _amount);\n\n        // slither-disable-next-line arbitrary-send-eth\n        (bool success, ) = payable(msg.sender).call{ value: _amount }(new bytes(0));\n        if (!success) {\n            revert(\"ManagedService: Failed to withdraw protocol payment\");\n        }\n    }\n\n    /**\n     * @notice Allows for this contract to receive ETH.\n     */\n    receive() external payable {}\n}\n"},"contracts/Semver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport { Version } from \"./ChugSplashDataTypes.sol\";\n\n/**\n * @title Semver\n * @notice Semver is a simple contract for managing contract versions.\n */\ncontract Semver {\n    /**\n     * @notice Contract version number (major).\n     */\n    uint256 private immutable MAJOR_VERSION;\n\n    /**\n     * @notice Contract version number (minor).\n     */\n    uint256 private immutable MINOR_VERSION;\n\n    /**\n     * @notice Contract version number (patch).\n     */\n    uint256 private immutable PATCH_VERSION;\n\n    /**\n     * @param _major Version number (major).\n     * @param _minor Version number (minor).\n     * @param _patch Version number (patch).\n     */\n    constructor(uint256 _major, uint256 _minor, uint256 _patch) {\n        MAJOR_VERSION = _major;\n        MINOR_VERSION = _minor;\n        PATCH_VERSION = _patch;\n    }\n\n    /**\n     * @notice Returns the full semver contract version.\n     *\n     * @return Semver contract version as a struct.\n     */\n    function version() public view returns (Version memory) {\n        return Version(MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION);\n    }\n}\n"},"contracts/updaters/DefaultUpdater.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { ProxyUpdater } from \"./ProxyUpdater.sol\";\n\n/**\n * @title DefaultUpdater\n * @notice Proxy updater that works with Transparent proxies, including the default Proxy contracts\n   used in the ChugSplash system.\n */\ncontract DefaultUpdater is ProxyUpdater {\n    /**\n     * @notice The storage slot that holds the address of the owner.\n     *         bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)\n     */\n    bytes32 internal constant OWNER_KEY =\n        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @notice A modifier that reverts if not called by the owner or by address(0) to allow\n     *         eth_call to interact with this proxy without needing to use low-level storage\n     *         inspection. We assume that nobody is able to trigger calls from address(0) during\n     *         normal EVM execution.\n     */\n    modifier ifAdmin() {\n        require(\n            msg.sender == _getAdmin() || msg.sender == address(0),\n            \"DefaultUpdater: caller is not admin\"\n        );\n        _;\n    }\n\n    /**\n     * Only callable by the owner.\n     * @inheritdoc ProxyUpdater\n     */\n    function setStorage(bytes32 _key, uint8 _offset, bytes memory _value) public override ifAdmin {\n        super.setStorage(_key, _offset, _value);\n    }\n\n    /**\n     * @notice Queries the owner of the proxy contract.\n     *\n     * @return Owner address.\n     */\n    function _getAdmin() internal view returns (address) {\n        address owner;\n        assembly {\n            owner := sload(OWNER_KEY)\n        }\n        return owner;\n    }\n}\n"},"contracts/updaters/OZUUPSUpdater.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { ProxyUpdater } from \"./ProxyUpdater.sol\";\n\n/**\n * @title OZUUPSUdater\n * @notice Proxy updater that works with OpenZeppelin UUPS proxies. This contract uses a special\n    storage slot key called the `CHUGSPLASH_ADMIN_KEY` which stores the owner address for the\n    duration of the upgrade. This is a convenient way to keep track of the admin during the upgrade\n    because OpenZeppelin UUPS proxies do not have a standard ownership mechanism. When the upgrade\n    is finished, this key is set back to address(0).\n */\ncontract OZUUPSUpdater is ProxyUpdater {\n    /**\n     * @notice The storage slot that holds the address of the implementation.\n     *         bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)\n     */\n    bytes32 internal constant IMPLEMENTATION_KEY =\n        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @notice The storage slot that holds the address of the ChugSplash admin.\n     *         bytes32(uint256(keccak256('chugsplash.proxy.admin')) - 1)\n     */\n    bytes32 internal constant CHUGSPLASH_ADMIN_KEY =\n        0xadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c34995;\n\n    /**\n     * @notice Address of this contract. This must be an immutable variable so that it remains\n       consistent when delegate called from a proxy.\n     */\n    address internal immutable THIS_ADDRESS = address(this);\n\n    /**\n     * @notice An event that is emitted each time the implementation is changed. This event is part\n     *         of the EIP-1967 specification.\n     *\n     * @param implementation The address of the implementation contract\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @notice A modifier that reverts if not called by the ChugSplash admin or by address(0) to\n       allow\n     *         eth_call to interact with this proxy without needing to use low-level storage\n     *         inspection. We assume that nobody is able to trigger calls from address(0) during\n     *         normal EVM execution.\n     */\n    modifier ifChugSplashAdmin() {\n        require(\n            msg.sender == _getChugSplashAdmin() || msg.sender == address(0),\n            \"OZUUPSUpdater: caller is not admin\"\n        );\n        _;\n    }\n\n    /**\n     * @notice Check that the execution is not being performed through a delegate call. This allows\n       a function to be\n     * callable on the implementation contract but not through a proxy.\n     */\n    modifier notDelegated() {\n        require(\n            address(this) == THIS_ADDRESS,\n            \"OZUUPSUpdater: must not be called through delegatecall\"\n        );\n        _;\n    }\n\n    /**\n     * @notice Set the implementation contract address. Only callable by the ChugSplash admin.\n     *\n     * @param _implementation Address of the implementation contract.\n     */\n    function upgradeTo(address _implementation) external ifChugSplashAdmin {\n        _setImplementation(_implementation);\n    }\n\n    /**\n     * @notice Initiates an upgrade by setting the ChugSplash admin to the caller's address.\n     */\n    function initiate() external {\n        if (_getChugSplashAdmin() != msg.sender) {\n            _setChugSplashAdmin(msg.sender);\n        }\n    }\n\n    /**\n     * @notice Completes an upgrade by setting the ChugSplash admin to address(0) and setting the\n       proxy's implementation to a new address. Only callable by the ChugSplash admin.\n     *\n     * @param _implementation Address of the implementation contract.\n     */\n    function complete(address _implementation) external ifChugSplashAdmin {\n        _setChugSplashAdmin(address(0));\n        _setImplementation(_implementation);\n    }\n\n    /**\n     * @notice Implementation of the ERC1822 `proxiableUUID` function. This returns the storage slot\n       used by the implementation. It is used to validate the implementation's compatibility when\n       performing an upgrade. Since this function is only meant to be available on an implementation\n       contract, it must revert if invoked through a proxy. This is guaranteed by the `notDelegated`\n       modifier.\n\n       @return The storage slot of the implementation.\n     */\n    function proxiableUUID() external view notDelegated returns (bytes32) {\n        return IMPLEMENTATION_KEY;\n    }\n\n    /**\n     * Only callable by the ChugSplash admin.\n     * @inheritdoc ProxyUpdater\n     */\n    function setStorage(\n        bytes32 _key,\n        uint8 _offset,\n        bytes memory _value\n    ) public override ifChugSplashAdmin {\n        super.setStorage(_key, _offset, _value);\n    }\n\n    /**\n     * @notice Sets the implementation address.\n     *\n     * @param _implementation New implementation address.\n     */\n    function _setImplementation(address _implementation) internal {\n        assembly {\n            sstore(IMPLEMENTATION_KEY, _implementation)\n        }\n        emit Upgraded(_implementation);\n    }\n\n    /**\n     * @notice Sets the ChugSplash admin to a new address.\n     *\n     * @param _newAdmin New admin address.\n     */\n    function _setChugSplashAdmin(address _newAdmin) internal {\n        assembly {\n            sstore(CHUGSPLASH_ADMIN_KEY, _newAdmin)\n        }\n    }\n\n    /**\n     * @notice Gets the ChugSplash admin's address.\n     *\n     * @return ChugSplash admin address.\n     */\n    function _getChugSplashAdmin() internal view returns (address) {\n        address chugsplashAdmin;\n        assembly {\n            chugsplashAdmin := sload(CHUGSPLASH_ADMIN_KEY)\n        }\n        return chugsplashAdmin;\n    }\n}\n"},"contracts/updaters/ProxyUpdater.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.15;\n\nimport { IProxyUpdater } from \"../interfaces/IProxyUpdater.sol\";\n\n/**\n * @title ProxyUpdater\n * @notice An abstract contract for setting storage slot values within a proxy at a given storage\n        slot key and offset.\n */\nabstract contract ProxyUpdater is IProxyUpdater {\n    /**\n     * @notice Sets a proxy's storage slot value at a given storage slot key and offset. Note that\n       this will thrown an error if the length of the storage slot value plus the offset (both in\n       bytes) is greater than 32.\n     *\n     *         To illustrate how this function works, consider the following example. Say we call\n     *         this function on some storage slot key with the input parameters:\n     *         `_offset = 2`\n     *         `_value = 0x22222222`\n     *\n     *         Say the storage slot value prior to calling this function is:\n     *         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\n     *\n     *         This function works by creating a bit mask at the location of the value, which in\n     *         this case is at an `offset` of 2 and is 4 bytes long (extending left from the\n     *         offset). The bit mask would be:\n     *         0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF\n     *\n     *         Applying this bit mask to the existing slot value, we get:\n     *         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC00000000CCCC\n     *\n     *         Then, we offset the new value to the correct location in the storage slot:\n     *         0x0000000000000000000000000000000000000000000000000000222222220000\n     *\n     *         Lastly, add these two values together to get the new storage slot value:\n     *         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC22222222CCCC\n     *\n     * @param _key     Storage slot key to modify.\n     * @param _offset  Bytes offset of the new storage slot value from the right side of the storage\n       slot. An offset of 0 means the new value will start at the right-most byte of the storage\n       slot.\n     * @param _value New value of the storage slot at the given key and offset. The length of the\n                     value is in the range [1, 32] bytes (inclusive).\n     */\n    function setStorage(bytes32 _key, uint8 _offset, bytes memory _value) public virtual {\n        require(_value.length <= 32, \"ProxyUpdater: value is too large\");\n\n        bytes32 valueBytes32 = bytes32(_value);\n\n        // If the length of the new value equals the size of the storage slot, we can just replace\n        // the entire slot value.\n        if (_value.length == 32) {\n            assembly {\n                sstore(_key, valueBytes32)\n            }\n        } else {\n            // Load the existing storage slot value.\n            bytes32 currVal;\n            assembly {\n                currVal := sload(_key)\n            }\n\n            // Convert lengths from bytes to bits. Makes calculations easier to read.\n            uint256 valueLengthBits = _value.length * 8;\n            uint256 offsetBits = _offset * 8;\n\n            // Create a bit mask that will set the values of the existing storage slot to 0 at the\n            // location of the new value. It's worth noting that the expresion:\n            // `(2 ** (valueLengthBits) - 1)` would revert if `valueLengthBits = 256`. However,\n            // this will never happen because values of length 32 are set directly in the\n            // if-statement above.\n            uint256 mask = ~((2 ** (valueLengthBits) - 1) << offsetBits);\n\n            // Apply the bit mask to the existing storage slot value.\n            bytes32 maskedCurrVal = bytes32(mask) & currVal;\n\n            // Calculate the offset of the value from the left side of the storage slot.\n            // Denominated in bits for consistency.\n            uint256 leftOffsetBits = 256 - offsetBits - valueLengthBits;\n\n            // Shift the value right so that it's aligned with the bitmasked location.\n            bytes32 rightShiftedValue = (valueBytes32 >> leftOffsetBits);\n\n            // Create the new storage slot value by adding the bit masked slot value to the new\n            // value.\n            uint256 newVal = uint256(maskedCurrVal) + uint256(rightShiftedValue);\n\n            // Set the new value of the storage slot.\n            assembly {\n                sstore(_key, newVal)\n            }\n        }\n    }\n}\n"},"solmate/src/utils/Bytes32AddressLib.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity >=0.8.0;\n\n/// @notice Library for converting between addresses and bytes32 values.\n/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\nlibrary Bytes32AddressLib {\n    function fromLast20Bytes(bytes32 bytesValue) internal pure returns (address) {\n        return address(uint160(uint256(bytesValue)));\n    }\n\n    function fillLast12Bytes(address addressValue) internal pure returns (bytes32) {\n        return bytes32(bytes20(addressValue));\n    }\n}\n"},"solmate/src/utils/CREATE3.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity >=0.8.0;\n\nimport {Bytes32AddressLib} from \"./Bytes32AddressLib.sol\";\n\n/// @notice Deploy to deterministic addresses without an initcode factor.\n/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)\n/// @author Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)\nlibrary CREATE3 {\n    using Bytes32AddressLib for bytes32;\n\n    //--------------------------------------------------------------------------------//\n    // Opcode     | Opcode + Arguments    | Description      | Stack View             //\n    //--------------------------------------------------------------------------------//\n    // 0x36       |  0x36                 | CALLDATASIZE     | size                   //\n    // 0x3d       |  0x3d                 | RETURNDATASIZE   | 0 size                 //\n    // 0x3d       |  0x3d                 | RETURNDATASIZE   | 0 0 size               //\n    // 0x37       |  0x37                 | CALLDATACOPY     |                        //\n    // 0x36       |  0x36                 | CALLDATASIZE     | size                   //\n    // 0x3d       |  0x3d                 | RETURNDATASIZE   | 0 size                 //\n    // 0x34       |  0x34                 | CALLVALUE        | value 0 size           //\n    // 0xf0       |  0xf0                 | CREATE           | newContract            //\n    //--------------------------------------------------------------------------------//\n    // Opcode     | Opcode + Arguments    | Description      | Stack View             //\n    //--------------------------------------------------------------------------------//\n    // 0x67       |  0x67XXXXXXXXXXXXXXXX | PUSH8 bytecode   | bytecode               //\n    // 0x3d       |  0x3d                 | RETURNDATASIZE   | 0 bytecode             //\n    // 0x52       |  0x52                 | MSTORE           |                        //\n    // 0x60       |  0x6008               | PUSH1 08         | 8                      //\n    // 0x60       |  0x6018               | PUSH1 18         | 24 8                   //\n    // 0xf3       |  0xf3                 | RETURN           |                        //\n    //--------------------------------------------------------------------------------//\n    bytes internal constant PROXY_BYTECODE = hex\"67_36_3d_3d_37_36_3d_34_f0_3d_52_60_08_60_18_f3\";\n\n    bytes32 internal constant PROXY_BYTECODE_HASH = keccak256(PROXY_BYTECODE);\n\n    function deploy(\n        bytes32 salt,\n        bytes memory creationCode,\n        uint256 value\n    ) internal returns (address deployed) {\n        bytes memory proxyChildBytecode = PROXY_BYTECODE;\n\n        address proxy;\n        /// @solidity memory-safe-assembly\n        assembly {\n            // Deploy a new contract with our pre-made bytecode via CREATE2.\n            // We start 32 bytes into the code to avoid copying the byte length.\n            proxy := create2(0, add(proxyChildBytecode, 32), mload(proxyChildBytecode), salt)\n        }\n        require(proxy != address(0), \"DEPLOYMENT_FAILED\");\n\n        deployed = getDeployed(salt);\n        (bool success, ) = proxy.call{value: value}(creationCode);\n        require(success && deployed.code.length != 0, \"INITIALIZATION_FAILED\");\n    }\n\n    function getDeployed(bytes32 salt) internal view returns (address) {\n        address proxy = keccak256(\n            abi.encodePacked(\n                // Prefix:\n                bytes1(0xFF),\n                // Creator:\n                address(this),\n                // Salt:\n                salt,\n                // Bytecode hash:\n                PROXY_BYTECODE_HASH\n            )\n        ).fromLast20Bytes();\n\n        return\n            keccak256(\n                abi.encodePacked(\n                    // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01)\n                    // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex)\n                    hex\"d6_94\",\n                    proxy,\n                    hex\"01\" // Nonce of the proxy contract (1)\n                )\n            ).fromLast20Bytes();\n    }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":5000},"outputSelection":{"*":{"*":["storageLayout","abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}},"metadata":{"bytecodeHash":"none"}}},"output":{"sources":{"@connext/interfaces/core/IConnext.sol":{"ast":{"absolutePath":"@connext/interfaces/core/IConnext.sol","exportedSymbols":{"DestinationTransferStatus":[292],"ExecuteArgs":[333],"IConnext":[285],"TokenId":[340],"TransferInfo":[319]},"id":286,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:0"},{"absolutePath":"@connext/interfaces/libraries/LibConnextStorage.sol","file":"../libraries/LibConnextStorage.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":286,"sourceUnit":334,"src":"64:104:0","symbolAliases":[{"foreign":{"id":2,"name":"ExecuteArgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":333,"src":"72:11:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3,"name":"TransferInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"85:12:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":4,"name":"DestinationTransferStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"99:25:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@connext/interfaces/libraries/TokenId.sol","file":"../libraries/TokenId.sol","id":7,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":286,"sourceUnit":341,"src":"169:49:0","symbolAliases":[{"foreign":{"id":6,"name":"TokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"177:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IConnext","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":285,"linearizedBaseContracts":[285],"name":"IConnext","nameLocation":"230:8:0","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8aac16ba","id":26,"implemented":false,"kind":"function","modifiers":[],"name":"xcall","nameLocation":"294:5:0","nodeType":"FunctionDefinition","parameters":{"id":22,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9,"mutability":"mutable","name":"_destination","nameLocation":"312:12:0","nodeType":"VariableDeclaration","scope":26,"src":"305:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8,"name":"uint32","nodeType":"ElementaryTypeName","src":"305:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":11,"mutability":"mutable","name":"_to","nameLocation":"338:3:0","nodeType":"VariableDeclaration","scope":26,"src":"330:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13,"mutability":"mutable","name":"_asset","nameLocation":"355:6:0","nodeType":"VariableDeclaration","scope":26,"src":"347:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"347:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15,"mutability":"mutable","name":"_delegate","nameLocation":"375:9:0","nodeType":"VariableDeclaration","scope":26,"src":"367:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14,"name":"address","nodeType":"ElementaryTypeName","src":"367:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"_amount","nameLocation":"398:7:0","nodeType":"VariableDeclaration","scope":26,"src":"390:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16,"name":"uint256","nodeType":"ElementaryTypeName","src":"390:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"_slippage","nameLocation":"419:9:0","nodeType":"VariableDeclaration","scope":26,"src":"411:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"_callData","nameLocation":"449:9:0","nodeType":"VariableDeclaration","scope":26,"src":"434:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":20,"name":"bytes","nodeType":"ElementaryTypeName","src":"434:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"299:163:0"},"returnParameters":{"id":25,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26,"src":"489:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23,"name":"bytes32","nodeType":"ElementaryTypeName","src":"489:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"488:9:0"},"scope":285,"src":"285:213:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"93f18ac5","id":47,"implemented":false,"kind":"function","modifiers":[],"name":"xcall","nameLocation":"511:5:0","nodeType":"FunctionDefinition","parameters":{"id":43,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"_destination","nameLocation":"529:12:0","nodeType":"VariableDeclaration","scope":47,"src":"522:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":27,"name":"uint32","nodeType":"ElementaryTypeName","src":"522:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":30,"mutability":"mutable","name":"_to","nameLocation":"555:3:0","nodeType":"VariableDeclaration","scope":47,"src":"547:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29,"name":"address","nodeType":"ElementaryTypeName","src":"547:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32,"mutability":"mutable","name":"_asset","nameLocation":"572:6:0","nodeType":"VariableDeclaration","scope":47,"src":"564:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34,"mutability":"mutable","name":"_delegate","nameLocation":"592:9:0","nodeType":"VariableDeclaration","scope":47,"src":"584:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33,"name":"address","nodeType":"ElementaryTypeName","src":"584:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36,"mutability":"mutable","name":"_amount","nameLocation":"615:7:0","nodeType":"VariableDeclaration","scope":47,"src":"607:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35,"name":"uint256","nodeType":"ElementaryTypeName","src":"607:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38,"mutability":"mutable","name":"_slippage","nameLocation":"636:9:0","nodeType":"VariableDeclaration","scope":47,"src":"628:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37,"name":"uint256","nodeType":"ElementaryTypeName","src":"628:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40,"mutability":"mutable","name":"_callData","nameLocation":"666:9:0","nodeType":"VariableDeclaration","scope":47,"src":"651:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":39,"name":"bytes","nodeType":"ElementaryTypeName","src":"651:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":42,"mutability":"mutable","name":"_relayerFee","nameLocation":"689:11:0","nodeType":"VariableDeclaration","scope":47,"src":"681:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41,"name":"uint256","nodeType":"ElementaryTypeName","src":"681:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"516:188:0"},"returnParameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47,"src":"723:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44,"name":"bytes32","nodeType":"ElementaryTypeName","src":"723:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"722:9:0"},"scope":285,"src":"502:230:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"91f5de79","id":66,"implemented":false,"kind":"function","modifiers":[],"name":"xcallIntoLocal","nameLocation":"745:14:0","nodeType":"FunctionDefinition","parameters":{"id":62,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49,"mutability":"mutable","name":"_destination","nameLocation":"772:12:0","nodeType":"VariableDeclaration","scope":66,"src":"765:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":48,"name":"uint32","nodeType":"ElementaryTypeName","src":"765:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":51,"mutability":"mutable","name":"_to","nameLocation":"798:3:0","nodeType":"VariableDeclaration","scope":66,"src":"790:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50,"name":"address","nodeType":"ElementaryTypeName","src":"790:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53,"mutability":"mutable","name":"_asset","nameLocation":"815:6:0","nodeType":"VariableDeclaration","scope":66,"src":"807:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52,"name":"address","nodeType":"ElementaryTypeName","src":"807:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55,"mutability":"mutable","name":"_delegate","nameLocation":"835:9:0","nodeType":"VariableDeclaration","scope":66,"src":"827:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54,"name":"address","nodeType":"ElementaryTypeName","src":"827:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57,"mutability":"mutable","name":"_amount","nameLocation":"858:7:0","nodeType":"VariableDeclaration","scope":66,"src":"850:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56,"name":"uint256","nodeType":"ElementaryTypeName","src":"850:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59,"mutability":"mutable","name":"_slippage","nameLocation":"879:9:0","nodeType":"VariableDeclaration","scope":66,"src":"871:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61,"mutability":"mutable","name":"_callData","nameLocation":"909:9:0","nodeType":"VariableDeclaration","scope":66,"src":"894:24:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":60,"name":"bytes","nodeType":"ElementaryTypeName","src":"894:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"759:163:0"},"returnParameters":{"id":65,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":66,"src":"949:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":63,"name":"bytes32","nodeType":"ElementaryTypeName","src":"949:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"948:9:0"},"scope":285,"src":"736:222:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"63e3e7d2","id":74,"implemented":false,"kind":"function","modifiers":[],"name":"execute","nameLocation":"971:7:0","nodeType":"FunctionDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"_args","nameLocation":"1000:5:0","nodeType":"VariableDeclaration","scope":74,"src":"979:26:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ExecuteArgs_$333_calldata_ptr","typeString":"struct ExecuteArgs"},"typeName":{"id":68,"nodeType":"UserDefinedTypeName","pathNode":{"id":67,"name":"ExecuteArgs","nodeType":"IdentifierPath","referencedDeclaration":333,"src":"979:11:0"},"referencedDeclaration":333,"src":"979:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_ExecuteArgs_$333_storage_ptr","typeString":"struct ExecuteArgs"}},"visibility":"internal"}],"src":"978:28:0"},"returnParameters":{"id":73,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"mutability":"mutable","name":"transferId","nameLocation":"1033:10:0","nodeType":"VariableDeclaration","scope":74,"src":"1025:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":71,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1025:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1024:20:0"},"scope":285,"src":"962:83:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"54126711","id":82,"implemented":false,"kind":"function","modifiers":[],"name":"forceUpdateSlippage","nameLocation":"1058:19:0","nodeType":"FunctionDefinition","parameters":{"id":80,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77,"mutability":"mutable","name":"_params","nameLocation":"1100:7:0","nodeType":"VariableDeclaration","scope":82,"src":"1078:29:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TransferInfo_$319_calldata_ptr","typeString":"struct TransferInfo"},"typeName":{"id":76,"nodeType":"UserDefinedTypeName","pathNode":{"id":75,"name":"TransferInfo","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"1078:12:0"},"referencedDeclaration":319,"src":"1078:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_TransferInfo_$319_storage_ptr","typeString":"struct TransferInfo"}},"visibility":"internal"},{"constant":false,"id":79,"mutability":"mutable","name":"_slippage","nameLocation":"1117:9:0","nodeType":"VariableDeclaration","scope":82,"src":"1109:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78,"name":"uint256","nodeType":"ElementaryTypeName","src":"1109:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1077:50:0"},"returnParameters":{"id":81,"nodeType":"ParameterList","parameters":[],"src":"1136:0:0"},"scope":285,"src":"1049:88:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cb8058ba","id":88,"implemented":false,"kind":"function","modifiers":[],"name":"forceReceiveLocal","nameLocation":"1150:17:0","nodeType":"FunctionDefinition","parameters":{"id":86,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85,"mutability":"mutable","name":"_params","nameLocation":"1190:7:0","nodeType":"VariableDeclaration","scope":88,"src":"1168:29:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TransferInfo_$319_calldata_ptr","typeString":"struct TransferInfo"},"typeName":{"id":84,"nodeType":"UserDefinedTypeName","pathNode":{"id":83,"name":"TransferInfo","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"1168:12:0"},"referencedDeclaration":319,"src":"1168:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_TransferInfo_$319_storage_ptr","typeString":"struct TransferInfo"}},"visibility":"internal"}],"src":"1167:31:0"},"returnParameters":{"id":87,"nodeType":"ParameterList","parameters":[],"src":"1207:0:0"},"scope":285,"src":"1141:67:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2424401f","id":93,"implemented":false,"kind":"function","modifiers":[],"name":"bumpTransfer","nameLocation":"1221:12:0","nodeType":"FunctionDefinition","parameters":{"id":91,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90,"mutability":"mutable","name":"_transferId","nameLocation":"1242:11:0","nodeType":"VariableDeclaration","scope":93,"src":"1234:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1234:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1233:21:0"},"returnParameters":{"id":92,"nodeType":"ParameterList","parameters":[],"src":"1271:0:0"},"scope":285,"src":"1212:60:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"1a8bc0e1","id":101,"implemented":false,"kind":"function","modifiers":[],"name":"routedTransfers","nameLocation":"1285:15:0","nodeType":"FunctionDefinition","parameters":{"id":96,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"_transferId","nameLocation":"1309:11:0","nodeType":"VariableDeclaration","scope":101,"src":"1301:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1301:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1300:21:0"},"returnParameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":99,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":101,"src":"1345:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":97,"name":"address","nodeType":"ElementaryTypeName","src":"1345:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":98,"nodeType":"ArrayTypeName","src":"1345:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1344:18:0"},"scope":285,"src":"1276:87:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bfd79030","id":109,"implemented":false,"kind":"function","modifiers":[],"name":"transferStatus","nameLocation":"1376:14:0","nodeType":"FunctionDefinition","parameters":{"id":104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103,"mutability":"mutable","name":"_transferId","nameLocation":"1399:11:0","nodeType":"VariableDeclaration","scope":109,"src":"1391:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1391:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1390:21:0"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109,"src":"1435:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_DestinationTransferStatus_$292","typeString":"enum DestinationTransferStatus"},"typeName":{"id":106,"nodeType":"UserDefinedTypeName","pathNode":{"id":105,"name":"DestinationTransferStatus","nodeType":"IdentifierPath","referencedDeclaration":292,"src":"1435:25:0"},"referencedDeclaration":292,"src":"1435:25:0","typeDescriptions":{"typeIdentifier":"t_enum$_DestinationTransferStatus_$292","typeString":"enum DestinationTransferStatus"}},"visibility":"internal"}],"src":"1434:27:0"},"scope":285,"src":"1367:95:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"121cca31","id":116,"implemented":false,"kind":"function","modifiers":[],"name":"remote","nameLocation":"1475:6:0","nodeType":"FunctionDefinition","parameters":{"id":112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111,"mutability":"mutable","name":"_domain","nameLocation":"1489:7:0","nodeType":"VariableDeclaration","scope":116,"src":"1482:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":110,"name":"uint32","nodeType":"ElementaryTypeName","src":"1482:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1481:16:0"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"1521:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"1521:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1520:9:0"},"scope":285,"src":"1466:64:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c2fb26a6","id":121,"implemented":false,"kind":"function","modifiers":[],"name":"domain","nameLocation":"1543:6:0","nodeType":"FunctionDefinition","parameters":{"id":117,"nodeType":"ParameterList","parameters":[],"src":"1549:2:0"},"returnParameters":{"id":120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121,"src":"1575:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1574:9:0"},"scope":285,"src":"1534:50:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"affed0e0","id":126,"implemented":false,"kind":"function","modifiers":[],"name":"nonce","nameLocation":"1597:5:0","nodeType":"FunctionDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[],"src":"1602:2:0"},"returnParameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126,"src":"1628:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1628:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1627:9:0"},"scope":285,"src":"1588:49:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"159e041f","id":133,"implemented":false,"kind":"function","modifiers":[],"name":"approvedSequencers","nameLocation":"1650:18:0","nodeType":"FunctionDefinition","parameters":{"id":129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"mutability":"mutable","name":"_sequencer","nameLocation":"1677:10:0","nodeType":"VariableDeclaration","scope":133,"src":"1669:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"1669:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1668:20:0"},"returnParameters":{"id":132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":133,"src":"1712:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":130,"name":"bool","nodeType":"ElementaryTypeName","src":"1712:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1711:6:0"},"scope":285,"src":"1641:77:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3339df96","id":138,"implemented":false,"kind":"function","modifiers":[],"name":"xAppConnectionManager","nameLocation":"1731:21:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[],"src":"1752:2:0"},"returnParameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":138,"src":"1778:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":135,"name":"address","nodeType":"ElementaryTypeName","src":"1778:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1777:9:0"},"scope":285,"src":"1722:65:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0951d6d8","id":143,"implemented":false,"kind":"function","modifiers":[],"name":"LIQUIDITY_FEE_NUMERATOR","nameLocation":"1842:23:0","nodeType":"FunctionDefinition","parameters":{"id":139,"nodeType":"ParameterList","parameters":[],"src":"1865:2:0"},"returnParameters":{"id":142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":143,"src":"1891:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":140,"name":"uint256","nodeType":"ElementaryTypeName","src":"1891:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1890:9:0"},"scope":285,"src":"1833:67:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4b72c5da","id":148,"implemented":false,"kind":"function","modifiers":[],"name":"LIQUIDITY_FEE_DENOMINATOR","nameLocation":"1913:25:0","nodeType":"FunctionDefinition","parameters":{"id":144,"nodeType":"ParameterList","parameters":[],"src":"1938:2:0"},"returnParameters":{"id":147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":148,"src":"1964:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1964:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1963:9:0"},"scope":285,"src":"1904:69:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1407093b","id":155,"implemented":false,"kind":"function","modifiers":[],"name":"getRouterApproval","nameLocation":"1986:17:0","nodeType":"FunctionDefinition","parameters":{"id":151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":150,"mutability":"mutable","name":"_router","nameLocation":"2012:7:0","nodeType":"VariableDeclaration","scope":155,"src":"2004:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":149,"name":"address","nodeType":"ElementaryTypeName","src":"2004:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2003:17:0"},"returnParameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":155,"src":"2044:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":152,"name":"bool","nodeType":"ElementaryTypeName","src":"2044:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2043:6:0"},"scope":285,"src":"1977:73:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c6bf691d","id":162,"implemented":false,"kind":"function","modifiers":[],"name":"getRouterRecipient","nameLocation":"2063:18:0","nodeType":"FunctionDefinition","parameters":{"id":158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"_router","nameLocation":"2090:7:0","nodeType":"VariableDeclaration","scope":162,"src":"2082:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":156,"name":"address","nodeType":"ElementaryTypeName","src":"2082:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2081:17:0"},"returnParameters":{"id":161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":162,"src":"2122:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":159,"name":"address","nodeType":"ElementaryTypeName","src":"2122:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2121:9:0"},"scope":285,"src":"2054:77:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e9160f3e","id":169,"implemented":false,"kind":"function","modifiers":[],"name":"getRouterOwner","nameLocation":"2144:14:0","nodeType":"FunctionDefinition","parameters":{"id":165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":164,"mutability":"mutable","name":"_router","nameLocation":"2167:7:0","nodeType":"VariableDeclaration","scope":169,"src":"2159:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2158:17:0"},"returnParameters":{"id":168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":167,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":169,"src":"2199:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":166,"name":"address","nodeType":"ElementaryTypeName","src":"2199:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2198:9:0"},"scope":285,"src":"2135:73:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3b688da6","id":176,"implemented":false,"kind":"function","modifiers":[],"name":"getProposedRouterOwner","nameLocation":"2221:22:0","nodeType":"FunctionDefinition","parameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"_router","nameLocation":"2252:7:0","nodeType":"VariableDeclaration","scope":176,"src":"2244:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"2244:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2243:17:0"},"returnParameters":{"id":175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":176,"src":"2284:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":173,"name":"address","nodeType":"ElementaryTypeName","src":"2284:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2283:9:0"},"scope":285,"src":"2212:81:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"12d57170","id":183,"implemented":false,"kind":"function","modifiers":[],"name":"getProposedRouterOwnerTimestamp","nameLocation":"2306:31:0","nodeType":"FunctionDefinition","parameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"_router","nameLocation":"2346:7:0","nodeType":"VariableDeclaration","scope":183,"src":"2338:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":177,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2337:17:0"},"returnParameters":{"id":182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":183,"src":"2378:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":180,"name":"uint256","nodeType":"ElementaryTypeName","src":"2378:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2377:9:0"},"scope":285,"src":"2297:90:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9bf6d875","id":188,"implemented":false,"kind":"function","modifiers":[],"name":"maxRoutersPerTransfer","nameLocation":"2400:21:0","nodeType":"FunctionDefinition","parameters":{"id":184,"nodeType":"ParameterList","parameters":[],"src":"2421:2:0"},"returnParameters":{"id":187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":188,"src":"2447:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":185,"name":"uint256","nodeType":"ElementaryTypeName","src":"2447:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2446:9:0"},"scope":285,"src":"2391:65:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"41258b5c","id":197,"implemented":false,"kind":"function","modifiers":[],"name":"routerBalances","nameLocation":"2469:14:0","nodeType":"FunctionDefinition","parameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":190,"mutability":"mutable","name":"_router","nameLocation":"2492:7:0","nodeType":"VariableDeclaration","scope":197,"src":"2484:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":189,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":192,"mutability":"mutable","name":"_asset","nameLocation":"2509:6:0","nodeType":"VariableDeclaration","scope":197,"src":"2501:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":191,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2483:33:0"},"returnParameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":197,"src":"2540:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2540:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2539:9:0"},"scope":285,"src":"2460:89:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"8770e682","id":204,"implemented":false,"kind":"function","modifiers":[],"name":"getRouterApprovalForPortal","nameLocation":"2562:26:0","nodeType":"FunctionDefinition","parameters":{"id":200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"mutability":"mutable","name":"_router","nameLocation":"2597:7:0","nodeType":"VariableDeclaration","scope":204,"src":"2589:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":198,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2588:17:0"},"returnParameters":{"id":203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":204,"src":"2629:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":201,"name":"bool","nodeType":"ElementaryTypeName","src":"2629:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2628:6:0"},"scope":285,"src":"2553:82:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b214c901","id":211,"implemented":false,"kind":"function","modifiers":[],"name":"initializeRouter","nameLocation":"2648:16:0","nodeType":"FunctionDefinition","parameters":{"id":209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206,"mutability":"mutable","name":"_owner","nameLocation":"2673:6:0","nodeType":"VariableDeclaration","scope":211,"src":"2665:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":205,"name":"address","nodeType":"ElementaryTypeName","src":"2665:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":208,"mutability":"mutable","name":"_recipient","nameLocation":"2689:10:0","nodeType":"VariableDeclaration","scope":211,"src":"2681:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":207,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2664:36:0"},"returnParameters":{"id":210,"nodeType":"ParameterList","parameters":[],"src":"2709:0:0"},"scope":285,"src":"2639:71:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ffaf3f1a","id":218,"implemented":false,"kind":"function","modifiers":[],"name":"setRouterRecipient","nameLocation":"2723:18:0","nodeType":"FunctionDefinition","parameters":{"id":216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"_router","nameLocation":"2750:7:0","nodeType":"VariableDeclaration","scope":218,"src":"2742:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":212,"name":"address","nodeType":"ElementaryTypeName","src":"2742:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":215,"mutability":"mutable","name":"_recipient","nameLocation":"2767:10:0","nodeType":"VariableDeclaration","scope":218,"src":"2759:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":214,"name":"address","nodeType":"ElementaryTypeName","src":"2759:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2741:37:0"},"returnParameters":{"id":217,"nodeType":"ParameterList","parameters":[],"src":"2787:0:0"},"scope":285,"src":"2714:74:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"22a3c007","id":225,"implemented":false,"kind":"function","modifiers":[],"name":"proposeRouterOwner","nameLocation":"2801:18:0","nodeType":"FunctionDefinition","parameters":{"id":223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":220,"mutability":"mutable","name":"_router","nameLocation":"2828:7:0","nodeType":"VariableDeclaration","scope":225,"src":"2820:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":219,"name":"address","nodeType":"ElementaryTypeName","src":"2820:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":222,"mutability":"mutable","name":"_proposed","nameLocation":"2845:9:0","nodeType":"VariableDeclaration","scope":225,"src":"2837:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":221,"name":"address","nodeType":"ElementaryTypeName","src":"2837:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2819:36:0"},"returnParameters":{"id":224,"nodeType":"ParameterList","parameters":[],"src":"2864:0:0"},"scope":285,"src":"2792:73:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"09935b8f","id":230,"implemented":false,"kind":"function","modifiers":[],"name":"acceptProposedRouterOwner","nameLocation":"2878:25:0","nodeType":"FunctionDefinition","parameters":{"id":228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":227,"mutability":"mutable","name":"_router","nameLocation":"2912:7:0","nodeType":"VariableDeclaration","scope":230,"src":"2904:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":226,"name":"address","nodeType":"ElementaryTypeName","src":"2904:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2903:17:0"},"returnParameters":{"id":229,"nodeType":"ParameterList","parameters":[],"src":"2929:0:0"},"scope":285,"src":"2869:61:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2d3f9ef6","id":239,"implemented":false,"kind":"function","modifiers":[],"name":"addRouterLiquidityFor","nameLocation":"2943:21:0","nodeType":"FunctionDefinition","parameters":{"id":237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":232,"mutability":"mutable","name":"_amount","nameLocation":"2978:7:0","nodeType":"VariableDeclaration","scope":239,"src":"2970:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":231,"name":"uint256","nodeType":"ElementaryTypeName","src":"2970:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":234,"mutability":"mutable","name":"_local","nameLocation":"2999:6:0","nodeType":"VariableDeclaration","scope":239,"src":"2991:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":233,"name":"address","nodeType":"ElementaryTypeName","src":"2991:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":236,"mutability":"mutable","name":"_router","nameLocation":"3019:7:0","nodeType":"VariableDeclaration","scope":239,"src":"3011:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":235,"name":"address","nodeType":"ElementaryTypeName","src":"3011:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2964:66:0"},"returnParameters":{"id":238,"nodeType":"ParameterList","parameters":[],"src":"3047:0:0"},"scope":285,"src":"2934:114:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"54064594","id":246,"implemented":false,"kind":"function","modifiers":[],"name":"addRouterLiquidity","nameLocation":"3061:18:0","nodeType":"FunctionDefinition","parameters":{"id":244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":241,"mutability":"mutable","name":"_amount","nameLocation":"3088:7:0","nodeType":"VariableDeclaration","scope":246,"src":"3080:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":240,"name":"uint256","nodeType":"ElementaryTypeName","src":"3080:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":243,"mutability":"mutable","name":"_local","nameLocation":"3105:6:0","nodeType":"VariableDeclaration","scope":246,"src":"3097:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":242,"name":"address","nodeType":"ElementaryTypeName","src":"3097:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3079:33:0"},"returnParameters":{"id":245,"nodeType":"ParameterList","parameters":[],"src":"3129:0:0"},"scope":285,"src":"3052:78:0","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"fd5bd5fe","id":258,"implemented":false,"kind":"function","modifiers":[],"name":"removeRouterLiquidityFor","nameLocation":"3143:24:0","nodeType":"FunctionDefinition","parameters":{"id":256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":249,"mutability":"mutable","name":"_canonical","nameLocation":"3188:10:0","nodeType":"VariableDeclaration","scope":258,"src":"3173:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_memory_ptr","typeString":"struct TokenId"},"typeName":{"id":248,"nodeType":"UserDefinedTypeName","pathNode":{"id":247,"name":"TokenId","nodeType":"IdentifierPath","referencedDeclaration":340,"src":"3173:7:0"},"referencedDeclaration":340,"src":"3173:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_storage_ptr","typeString":"struct TokenId"}},"visibility":"internal"},{"constant":false,"id":251,"mutability":"mutable","name":"_amount","nameLocation":"3212:7:0","nodeType":"VariableDeclaration","scope":258,"src":"3204:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250,"name":"uint256","nodeType":"ElementaryTypeName","src":"3204:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":253,"mutability":"mutable","name":"_to","nameLocation":"3241:3:0","nodeType":"VariableDeclaration","scope":258,"src":"3225:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":252,"name":"address","nodeType":"ElementaryTypeName","src":"3225:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":255,"mutability":"mutable","name":"_router","nameLocation":"3258:7:0","nodeType":"VariableDeclaration","scope":258,"src":"3250:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":254,"name":"address","nodeType":"ElementaryTypeName","src":"3250:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3167:102:0"},"returnParameters":{"id":257,"nodeType":"ParameterList","parameters":[],"src":"3278:0:0"},"scope":285,"src":"3134:145:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f72c5048","id":268,"implemented":false,"kind":"function","modifiers":[],"name":"removeRouterLiquidity","nameLocation":"3292:21:0","nodeType":"FunctionDefinition","parameters":{"id":266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":261,"mutability":"mutable","name":"_canonical","nameLocation":"3329:10:0","nodeType":"VariableDeclaration","scope":268,"src":"3314:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_memory_ptr","typeString":"struct TokenId"},"typeName":{"id":260,"nodeType":"UserDefinedTypeName","pathNode":{"id":259,"name":"TokenId","nodeType":"IdentifierPath","referencedDeclaration":340,"src":"3314:7:0"},"referencedDeclaration":340,"src":"3314:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_storage_ptr","typeString":"struct TokenId"}},"visibility":"internal"},{"constant":false,"id":263,"mutability":"mutable","name":"_amount","nameLocation":"3349:7:0","nodeType":"VariableDeclaration","scope":268,"src":"3341:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":262,"name":"uint256","nodeType":"ElementaryTypeName","src":"3341:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":265,"mutability":"mutable","name":"_to","nameLocation":"3374:3:0","nodeType":"VariableDeclaration","scope":268,"src":"3358:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":264,"name":"address","nodeType":"ElementaryTypeName","src":"3358:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"3313:65:0"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[],"src":"3387:0:0"},"scope":285,"src":"3283:105:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"60062091","id":276,"implemented":false,"kind":"function","modifiers":[],"name":"adoptedToCanonical","nameLocation":"3446:18:0","nodeType":"FunctionDefinition","parameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":270,"mutability":"mutable","name":"_adopted","nameLocation":"3473:8:0","nodeType":"VariableDeclaration","scope":276,"src":"3465:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":269,"name":"address","nodeType":"ElementaryTypeName","src":"3465:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3464:18:0"},"returnParameters":{"id":275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":276,"src":"3506:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_memory_ptr","typeString":"struct TokenId"},"typeName":{"id":273,"nodeType":"UserDefinedTypeName","pathNode":{"id":272,"name":"TokenId","nodeType":"IdentifierPath","referencedDeclaration":340,"src":"3506:7:0"},"referencedDeclaration":340,"src":"3506:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_storage_ptr","typeString":"struct TokenId"}},"visibility":"internal"}],"src":"3505:16:0"},"scope":285,"src":"3437:85:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ae8bc0de","id":284,"implemented":false,"kind":"function","modifiers":[],"name":"approvedAssets","nameLocation":"3535:14:0","nodeType":"FunctionDefinition","parameters":{"id":280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":279,"mutability":"mutable","name":"_canonical","nameLocation":"3567:10:0","nodeType":"VariableDeclaration","scope":284,"src":"3550:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_calldata_ptr","typeString":"struct TokenId"},"typeName":{"id":278,"nodeType":"UserDefinedTypeName","pathNode":{"id":277,"name":"TokenId","nodeType":"IdentifierPath","referencedDeclaration":340,"src":"3550:7:0"},"referencedDeclaration":340,"src":"3550:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_TokenId_$340_storage_ptr","typeString":"struct TokenId"}},"visibility":"internal"}],"src":"3549:29:0"},"returnParameters":{"id":283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":284,"src":"3602:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":281,"name":"bool","nodeType":"ElementaryTypeName","src":"3602:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3601:6:0"},"scope":285,"src":"3526:82:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":286,"src":"220:3390:0","usedErrors":[]}],"src":"39:3572:0"},"id":0},"@connext/interfaces/libraries/LibConnextStorage.sol":{"ast":{"absolutePath":"@connext/interfaces/libraries/LibConnextStorage.sol","exportedSymbols":{"DestinationTransferStatus":[292],"ExecuteArgs":[333],"TransferInfo":[319]},"id":334,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":287,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:1"},{"canonicalName":"DestinationTransferStatus","id":292,"members":[{"id":288,"name":"None","nameLocation":"315:4:1","nodeType":"EnumValue","src":"315:4:1"},{"id":289,"name":"Reconciled","nameLocation":"328:10:1","nodeType":"EnumValue","src":"328:10:1"},{"id":290,"name":"Executed","nameLocation":"347:8:1","nodeType":"EnumValue","src":"347:8:1"},{"id":291,"name":"Completed","nameLocation":"364:9:1","nodeType":"EnumValue","src":"364:9:1"}],"name":"DestinationTransferStatus","nameLocation":"285:25:1","nodeType":"EnumDefinition","src":"280:124:1"},{"canonicalName":"TransferInfo","id":319,"members":[{"constant":false,"id":294,"mutability":"mutable","name":"originDomain","nameLocation":"1948:12:1","nodeType":"VariableDeclaration","scope":319,"src":"1941:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":293,"name":"uint32","nodeType":"ElementaryTypeName","src":"1941:6:1","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":296,"mutability":"mutable","name":"destinationDomain","nameLocation":"1971:17:1","nodeType":"VariableDeclaration","scope":319,"src":"1964:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":295,"name":"uint32","nodeType":"ElementaryTypeName","src":"1964:6:1","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":298,"mutability":"mutable","name":"canonicalDomain","nameLocation":"1999:15:1","nodeType":"VariableDeclaration","scope":319,"src":"1992:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":297,"name":"uint32","nodeType":"ElementaryTypeName","src":"1992:6:1","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":300,"mutability":"mutable","name":"to","nameLocation":"2026:2:1","nodeType":"VariableDeclaration","scope":319,"src":"2018:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":299,"name":"address","nodeType":"ElementaryTypeName","src":"2018:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":302,"mutability":"mutable","name":"delegate","nameLocation":"2040:8:1","nodeType":"VariableDeclaration","scope":319,"src":"2032:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":301,"name":"address","nodeType":"ElementaryTypeName","src":"2032:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":304,"mutability":"mutable","name":"receiveLocal","nameLocation":"2057:12:1","nodeType":"VariableDeclaration","scope":319,"src":"2052:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":303,"name":"bool","nodeType":"ElementaryTypeName","src":"2052:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":306,"mutability":"mutable","name":"callData","nameLocation":"2079:8:1","nodeType":"VariableDeclaration","scope":319,"src":"2073:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":305,"name":"bytes","nodeType":"ElementaryTypeName","src":"2073:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":308,"mutability":"mutable","name":"slippage","nameLocation":"2099:8:1","nodeType":"VariableDeclaration","scope":319,"src":"2091:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":307,"name":"uint256","nodeType":"ElementaryTypeName","src":"2091:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":310,"mutability":"mutable","name":"originSender","nameLocation":"2119:12:1","nodeType":"VariableDeclaration","scope":319,"src":"2111:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":309,"name":"address","nodeType":"ElementaryTypeName","src":"2111:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":312,"mutability":"mutable","name":"bridgedAmt","nameLocation":"2143:10:1","nodeType":"VariableDeclaration","scope":319,"src":"2135:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":311,"name":"uint256","nodeType":"ElementaryTypeName","src":"2135:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":314,"mutability":"mutable","name":"normalizedIn","nameLocation":"2165:12:1","nodeType":"VariableDeclaration","scope":319,"src":"2157:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":313,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":316,"mutability":"mutable","name":"nonce","nameLocation":"2189:5:1","nodeType":"VariableDeclaration","scope":319,"src":"2181:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":315,"name":"uint256","nodeType":"ElementaryTypeName","src":"2181:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":318,"mutability":"mutable","name":"canonicalId","nameLocation":"2206:11:1","nodeType":"VariableDeclaration","scope":319,"src":"2198:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2198:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"TransferInfo","nameLocation":"1924:12:1","nodeType":"StructDefinition","scope":334,"src":"1917:303:1","visibility":"public"},{"canonicalName":"ExecuteArgs","id":333,"members":[{"constant":false,"id":322,"mutability":"mutable","name":"params","nameLocation":"2797:6:1","nodeType":"VariableDeclaration","scope":333,"src":"2784:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TransferInfo_$319_storage_ptr","typeString":"struct TransferInfo"},"typeName":{"id":321,"nodeType":"UserDefinedTypeName","pathNode":{"id":320,"name":"TransferInfo","nodeType":"IdentifierPath","referencedDeclaration":319,"src":"2784:12:1"},"referencedDeclaration":319,"src":"2784:12:1","typeDescriptions":{"typeIdentifier":"t_struct$_TransferInfo_$319_storage_ptr","typeString":"struct TransferInfo"}},"visibility":"internal"},{"constant":false,"id":325,"mutability":"mutable","name":"routers","nameLocation":"2817:7:1","nodeType":"VariableDeclaration","scope":333,"src":"2807:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":323,"name":"address","nodeType":"ElementaryTypeName","src":"2807:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":324,"nodeType":"ArrayTypeName","src":"2807:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":328,"mutability":"mutable","name":"routerSignatures","nameLocation":"2836:16:1","nodeType":"VariableDeclaration","scope":333,"src":"2828:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":326,"name":"bytes","nodeType":"ElementaryTypeName","src":"2828:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":327,"nodeType":"ArrayTypeName","src":"2828:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":330,"mutability":"mutable","name":"sequencer","nameLocation":"2864:9:1","nodeType":"VariableDeclaration","scope":333,"src":"2856:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":329,"name":"address","nodeType":"ElementaryTypeName","src":"2856:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":332,"mutability":"mutable","name":"sequencerSignature","nameLocation":"2883:18:1","nodeType":"VariableDeclaration","scope":333,"src":"2877:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":331,"name":"bytes","nodeType":"ElementaryTypeName","src":"2877:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ExecuteArgs","nameLocation":"2768:11:1","nodeType":"StructDefinition","scope":334,"src":"2761:143:1","visibility":"public"}],"src":"39:2865:1"},"id":1},"@connext/interfaces/libraries/TokenId.sol":{"ast":{"absolutePath":"@connext/interfaces/libraries/TokenId.sol","exportedSymbols":{"TokenId":[340]},"id":341,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":335,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:2"},{"canonicalName":"TokenId","id":340,"members":[{"constant":false,"id":337,"mutability":"mutable","name":"domain","nameLocation":"349:6:2","nodeType":"VariableDeclaration","scope":340,"src":"342:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":336,"name":"uint32","nodeType":"ElementaryTypeName","src":"342:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":339,"mutability":"mutable","name":"id","nameLocation":"367:2:2","nodeType":"VariableDeclaration","scope":340,"src":"359:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"TokenId","nameLocation":"330:7:2","nodeType":"StructDefinition","scope":341,"src":"323:49:2","visibility":"public"}],"src":"46:327:2"},"id":2},"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol":{"ast":{"absolutePath":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","exportedSymbols":{"Proxy":[573]},"id":574,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":342,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"32:23:3"},{"abstract":false,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":343,"nodeType":"StructuredDocumentation","src":"57:236:3","text":" @title Proxy\n @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or\n         if the caller is address(0), meaning that the call originated from an off-chain\n         simulation."},"fullyImplemented":true,"id":573,"linearizedBaseContracts":[573],"name":"Proxy","nameLocation":"303:5:3","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":344,"nodeType":"StructuredDocumentation","src":"315:168:3","text":" @notice The storage slot that holds the address of the implementation.\n         bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)"},"id":347,"mutability":"constant","name":"IMPLEMENTATION_KEY","nameLocation":"514:18:3","nodeType":"VariableDeclaration","scope":573,"src":"488:121:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"488:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"543:66:3","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"constant":true,"documentation":{"id":348,"nodeType":"StructuredDocumentation","src":"616:150:3","text":" @notice The storage slot that holds the address of the owner.\n         bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)"},"id":351,"mutability":"constant","name":"OWNER_KEY","nameLocation":"797:9:3","nodeType":"VariableDeclaration","scope":573,"src":"771:112:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"771:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"817:66:3","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"890:236:3","text":" @notice An event that is emitted each time the implementation is changed. This event is part\n         of the EIP-1967 specification.\n @param implementation The address of the implementation contract"},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":356,"name":"Upgraded","nameLocation":"1137:8:3","nodeType":"EventDefinition","parameters":{"id":355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1162:14:3","nodeType":"VariableDeclaration","scope":356,"src":"1146:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"1146:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1145:32:3"},"src":"1131:47:3"},{"anonymous":false,"documentation":{"id":357,"nodeType":"StructuredDocumentation","src":"1184:277:3","text":" @notice An event that is emitted each time the owner is upgraded. This event is part of the\n         EIP-1967 specification.\n @param previousAdmin The previous owner of the contract\n @param newAdmin      The new owner of the contract"},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":363,"name":"AdminChanged","nameLocation":"1472:12:3","nodeType":"EventDefinition","parameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":359,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"1493:13:3","nodeType":"VariableDeclaration","scope":363,"src":"1485:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":358,"name":"address","nodeType":"ElementaryTypeName","src":"1485:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":361,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"1516:8:3","nodeType":"VariableDeclaration","scope":363,"src":"1508:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":360,"name":"address","nodeType":"ElementaryTypeName","src":"1508:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1484:41:3"},"src":"1466:60:3"},{"body":{"id":386,"nodeType":"Block","src":"1898:206:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":366,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1912:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1912:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":368,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"1926:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1926:11:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1912:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":371,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1941:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1941:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:3","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":374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1955:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":373,"name":"address","nodeType":"ElementaryTypeName","src":"1955:7:3","typeDescriptions":{}}},"id":376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1955:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1941:24:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1912:53:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":384,"nodeType":"Block","src":"1999:99:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":381,"name":"_doProxyCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"2073:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2073:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":383,"nodeType":"ExpressionStatement","src":"2073:14:3"}]},"id":385,"nodeType":"IfStatement","src":"1908:190:3","trueBody":{"id":380,"nodeType":"Block","src":"1967:26:3","statements":[{"id":379,"nodeType":"PlaceholderStatement","src":"1981:1:3"}]}}]},"documentation":{"id":364,"nodeType":"StructuredDocumentation","src":"1532:330:3","text":" @notice A modifier that reverts if not called by the owner or by address(0) to allow\n         eth_call to interact with this proxy without needing to use low-level storage\n         inspection. We assume that nobody is able to trigger calls from address(0) during\n         normal EVM execution."},"id":387,"name":"proxyCallIfNotAdmin","nameLocation":"1876:19:3","nodeType":"ModifierDefinition","parameters":{"id":365,"nodeType":"ParameterList","parameters":[],"src":"1895:2:3"},"src":"1867:237:3","virtual":false,"visibility":"internal"},{"body":{"id":397,"nodeType":"Block","src":"2539:37:3","statements":[{"expression":{"arguments":[{"id":394,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"2562:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":393,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":525,"src":"2549:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2549:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":396,"nodeType":"ExpressionStatement","src":"2549:20:3"}]},"documentation":{"id":388,"nodeType":"StructuredDocumentation","src":"2110:396:3","text":" @notice Sets the initial admin during contract deployment. Admin address is stored at the\n         EIP-1967 admin storage slot so that accidental storage collision with the\n         implementation is not possible.\n @param _admin Address of the initial contract admin. Admin as the ability to access the\n               transparent proxy interface."},"id":398,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":390,"mutability":"mutable","name":"_admin","nameLocation":"2531:6:3","nodeType":"VariableDeclaration","scope":398,"src":"2523:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":389,"name":"address","nodeType":"ElementaryTypeName","src":"2523:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2522:16:3"},"returnParameters":{"id":392,"nodeType":"ParameterList","parameters":[],"src":"2539:0:3"},"scope":573,"src":"2511:65:3","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":404,"nodeType":"Block","src":"2655:65:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":401,"name":"_doProxyCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"2699:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2699:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":403,"nodeType":"ExpressionStatement","src":"2699:14:3"}]},"id":405,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":399,"nodeType":"ParameterList","parameters":[],"src":"2635:2:3"},"returnParameters":{"id":400,"nodeType":"ParameterList","parameters":[],"src":"2655:0:3"},"scope":573,"src":"2628:92:3","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":411,"nodeType":"Block","src":"2800:65:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":408,"name":"_doProxyCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"2844:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2844:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":410,"nodeType":"ExpressionStatement","src":"2844:14:3"}]},"id":412,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":406,"nodeType":"ParameterList","parameters":[],"src":"2780:2:3"},"returnParameters":{"id":407,"nodeType":"ParameterList","parameters":[],"src":"2800:0:3"},"scope":573,"src":"2772:93:3","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":424,"nodeType":"Block","src":"3187:52:3","statements":[{"expression":{"arguments":[{"id":421,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":415,"src":"3216:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":420,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":507,"src":"3197:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3197:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":423,"nodeType":"ExpressionStatement","src":"3197:35:3"}]},"documentation":{"id":413,"nodeType":"StructuredDocumentation","src":"2871:232:3","text":" @notice Set the implementation contract address. The code at the given address will execute\n         when this contract is called.\n @param _implementation Address of the implementation contract."},"functionSelector":"3659cfe6","id":425,"implemented":true,"kind":"function","modifiers":[{"id":418,"kind":"modifierInvocation","modifierName":{"id":417,"name":"proxyCallIfNotAdmin","nodeType":"IdentifierPath","referencedDeclaration":387,"src":"3167:19:3"},"nodeType":"ModifierInvocation","src":"3167:19:3"}],"name":"upgradeTo","nameLocation":"3117:9:3","nodeType":"FunctionDefinition","parameters":{"id":416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":415,"mutability":"mutable","name":"_implementation","nameLocation":"3135:15:3","nodeType":"VariableDeclaration","scope":425,"src":"3127:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"3127:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3126:25:3"},"returnParameters":{"id":419,"nodeType":"ParameterList","parameters":[],"src":"3187:0:3"},"scope":573,"src":"3108:131:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":457,"nodeType":"Block","src":"3771:253:3","statements":[{"expression":{"arguments":[{"id":438,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"3800:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":437,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":507,"src":"3781:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3781:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":440,"nodeType":"ExpressionStatement","src":"3781:35:3"},{"assignments":[442,444],"declarations":[{"constant":false,"id":442,"mutability":"mutable","name":"success","nameLocation":"3832:7:3","nodeType":"VariableDeclaration","scope":457,"src":"3827:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":441,"name":"bool","nodeType":"ElementaryTypeName","src":"3827:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":444,"mutability":"mutable","name":"returndata","nameLocation":"3854:10:3","nodeType":"VariableDeclaration","scope":457,"src":"3841:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":443,"name":"bytes","nodeType":"ElementaryTypeName","src":"3841:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":449,"initialValue":{"arguments":[{"id":447,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"3897:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":445,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"3868:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"3868:28:3","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":448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3868:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3826:77:3"},{"expression":{"arguments":[{"id":451,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"3921:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78793a2064656c656761746563616c6c20746f206e657720696d706c656d656e746174696f6e20636f6e7472616374206661696c6564","id":452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3930:59:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac","typeString":"literal_string \"Proxy: delegatecall to new implementation contract failed\""},"value":"Proxy: delegatecall to new implementation contract failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac","typeString":"literal_string \"Proxy: delegatecall to new implementation contract failed\""}],"id":450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3913:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3913:77:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":454,"nodeType":"ExpressionStatement","src":"3913:77:3"},{"expression":{"id":455,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":444,"src":"4007:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":436,"id":456,"nodeType":"Return","src":"4000:17:3"}]},"documentation":{"id":426,"nodeType":"StructuredDocumentation","src":"3245:338:3","text":" @notice Set the implementation and call a function in a single transaction. Useful to ensure\n         atomic execution of initialization-based upgrades.\n @param _implementation Address of the implementation contract.\n @param _data           Calldata to delegatecall the new implementation with."},"functionSelector":"4f1ef286","id":458,"implemented":true,"kind":"function","modifiers":[{"id":433,"kind":"modifierInvocation","modifierName":{"id":432,"name":"proxyCallIfNotAdmin","nodeType":"IdentifierPath","referencedDeclaration":387,"src":"3716:19:3"},"nodeType":"ModifierInvocation","src":"3716:19:3"}],"name":"upgradeToAndCall","nameLocation":"3597:16:3","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":428,"mutability":"mutable","name":"_implementation","nameLocation":"3622:15:3","nodeType":"VariableDeclaration","scope":458,"src":"3614:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":427,"name":"address","nodeType":"ElementaryTypeName","src":"3614:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"_data","nameLocation":"3654:5:3","nodeType":"VariableDeclaration","scope":458,"src":"3639:20:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":429,"name":"bytes","nodeType":"ElementaryTypeName","src":"3639:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3613:47:3"},"returnParameters":{"id":436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":458,"src":"3753:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":434,"name":"bytes","nodeType":"ElementaryTypeName","src":"3753:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3752:14:3"},"scope":573,"src":"3588:436:3","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":470,"nodeType":"Block","src":"4263:37:3","statements":[{"expression":{"arguments":[{"id":467,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"4286:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":466,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":525,"src":"4273:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4273:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":469,"nodeType":"ExpressionStatement","src":"4273:20:3"}]},"documentation":{"id":459,"nodeType":"StructuredDocumentation","src":"4030:156:3","text":" @notice Changes the owner of the proxy contract. Only callable by the owner.\n @param _admin New owner of the proxy contract."},"functionSelector":"8f283970","id":471,"implemented":true,"kind":"function","modifiers":[{"id":464,"kind":"modifierInvocation","modifierName":{"id":463,"name":"proxyCallIfNotAdmin","nodeType":"IdentifierPath","referencedDeclaration":387,"src":"4243:19:3"},"nodeType":"ModifierInvocation","src":"4243:19:3"}],"name":"changeAdmin","nameLocation":"4200:11:3","nodeType":"FunctionDefinition","parameters":{"id":462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":461,"mutability":"mutable","name":"_admin","nameLocation":"4220:6:3","nodeType":"VariableDeclaration","scope":471,"src":"4212:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":460,"name":"address","nodeType":"ElementaryTypeName","src":"4212:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4211:16:3"},"returnParameters":{"id":465,"nodeType":"ParameterList","parameters":[],"src":"4263:0:3"},"scope":573,"src":"4191:109:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":482,"nodeType":"Block","src":"4482:35:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":479,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"4499:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4499:11:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":478,"id":481,"nodeType":"Return","src":"4492:18:3"}]},"documentation":{"id":472,"nodeType":"StructuredDocumentation","src":"4306:101:3","text":" @notice Gets the owner of the proxy contract.\n @return Owner address."},"functionSelector":"f851a440","id":483,"implemented":true,"kind":"function","modifiers":[{"id":475,"kind":"modifierInvocation","modifierName":{"id":474,"name":"proxyCallIfNotAdmin","nodeType":"IdentifierPath","referencedDeclaration":387,"src":"4444:19:3"},"nodeType":"ModifierInvocation","src":"4444:19:3"}],"name":"admin","nameLocation":"4421:5:3","nodeType":"FunctionDefinition","parameters":{"id":473,"nodeType":"ParameterList","parameters":[],"src":"4426:2:3"},"returnParameters":{"id":478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":483,"src":"4473:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":476,"name":"address","nodeType":"ElementaryTypeName","src":"4473:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4472:9:3"},"scope":573,"src":"4412:105:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":494,"nodeType":"Block","src":"4715:44:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":491,"name":"_getImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"4732:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4732:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":490,"id":493,"nodeType":"Return","src":"4725:27:3"}]},"documentation":{"id":484,"nodeType":"StructuredDocumentation","src":"4523:108:3","text":" @notice Queries the implementation address.\n @return Implementation address."},"functionSelector":"5c60da1b","id":495,"implemented":true,"kind":"function","modifiers":[{"id":487,"kind":"modifierInvocation","modifierName":{"id":486,"name":"proxyCallIfNotAdmin","nodeType":"IdentifierPath","referencedDeclaration":387,"src":"4677:19:3"},"nodeType":"ModifierInvocation","src":"4677:19:3"}],"name":"implementation","nameLocation":"4645:14:3","nodeType":"FunctionDefinition","parameters":{"id":485,"nodeType":"ParameterList","parameters":[],"src":"4659:2:3"},"returnParameters":{"id":490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":495,"src":"4706:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":488,"name":"address","nodeType":"ElementaryTypeName","src":"4706:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4705:9:3"},"scope":573,"src":"4636:123:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":506,"nodeType":"Block","src":"4956:132:3","statements":[{"AST":{"nodeType":"YulBlock","src":"4975:67:3","statements":[{"expression":{"arguments":[{"name":"IMPLEMENTATION_KEY","nodeType":"YulIdentifier","src":"4996:18:3"},{"name":"_implementation","nodeType":"YulIdentifier","src":"5016:15:3"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4989:6:3"},"nodeType":"YulFunctionCall","src":"4989:43:3"},"nodeType":"YulExpressionStatement","src":"4989:43:3"}]},"evmVersion":"london","externalReferences":[{"declaration":347,"isOffset":false,"isSlot":false,"src":"4996:18:3","valueSize":1},{"declaration":498,"isOffset":false,"isSlot":false,"src":"5016:15:3","valueSize":1}],"id":501,"nodeType":"InlineAssembly","src":"4966:76:3"},{"eventCall":{"arguments":[{"id":503,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"5065:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":502,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"5056:8:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5056:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":505,"nodeType":"EmitStatement","src":"5051:30:3"}]},"documentation":{"id":496,"nodeType":"StructuredDocumentation","src":"4765:124:3","text":" @notice Sets the implementation address.\n @param _implementation New implementation address."},"id":507,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"4903:18:3","nodeType":"FunctionDefinition","parameters":{"id":499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":498,"mutability":"mutable","name":"_implementation","nameLocation":"4930:15:3","nodeType":"VariableDeclaration","scope":507,"src":"4922:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":497,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4921:25:3"},"returnParameters":{"id":500,"nodeType":"ParameterList","parameters":[],"src":"4956:0:3"},"scope":573,"src":"4894:194:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":524,"nodeType":"Block","src":"5274:159:3","statements":[{"assignments":[514],"declarations":[{"constant":false,"id":514,"mutability":"mutable","name":"previous","nameLocation":"5292:8:3","nodeType":"VariableDeclaration","scope":524,"src":"5284:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":513,"name":"address","nodeType":"ElementaryTypeName","src":"5284:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":517,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":515,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":572,"src":"5303:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5303:11:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5284:30:3"},{"AST":{"nodeType":"YulBlock","src":"5333:49:3","statements":[{"expression":{"arguments":[{"name":"OWNER_KEY","nodeType":"YulIdentifier","src":"5354:9:3"},{"name":"_admin","nodeType":"YulIdentifier","src":"5365:6:3"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"5347:6:3"},"nodeType":"YulFunctionCall","src":"5347:25:3"},"nodeType":"YulExpressionStatement","src":"5347:25:3"}]},"evmVersion":"london","externalReferences":[{"declaration":351,"isOffset":false,"isSlot":false,"src":"5354:9:3","valueSize":1},{"declaration":510,"isOffset":false,"isSlot":false,"src":"5365:6:3","valueSize":1}],"id":518,"nodeType":"InlineAssembly","src":"5324:58:3"},{"eventCall":{"arguments":[{"id":520,"name":"previous","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"5409:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":521,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"5419:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":519,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"5396:12:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5396:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":523,"nodeType":"EmitStatement","src":"5391:35:3"}]},"documentation":{"id":508,"nodeType":"StructuredDocumentation","src":"5094:128:3","text":" @notice Changes the owner of the proxy contract.\n @param _admin New owner of the proxy contract."},"id":525,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"5236:12:3","nodeType":"FunctionDefinition","parameters":{"id":511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":510,"mutability":"mutable","name":"_admin","nameLocation":"5257:6:3","nodeType":"VariableDeclaration","scope":525,"src":"5249:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":509,"name":"address","nodeType":"ElementaryTypeName","src":"5249:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5248:16:3"},"returnParameters":{"id":512,"nodeType":"ParameterList","parameters":[],"src":"5274:0:3"},"scope":573,"src":"5227:206:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":545,"nodeType":"Block","src":"5547:1034:3","statements":[{"assignments":[530],"declarations":[{"constant":false,"id":530,"mutability":"mutable","name":"impl","nameLocation":"5565:4:3","nodeType":"VariableDeclaration","scope":545,"src":"5557:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":529,"name":"address","nodeType":"ElementaryTypeName","src":"5557:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":533,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":531,"name":"_getImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"5572:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5572:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5557:35:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":535,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"5610:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5626:1:3","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":537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5618:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":536,"name":"address","nodeType":"ElementaryTypeName","src":"5618:7:3","typeDescriptions":{}}},"id":539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5618:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5610:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78793a20696d706c656d656e746174696f6e206e6f7420696e697469616c697a6564","id":541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5630:39:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59","typeString":"literal_string \"Proxy: implementation not initialized\""},"value":"Proxy: implementation not initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59","typeString":"literal_string \"Proxy: implementation not initialized\""}],"id":534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5602:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5602:68:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":543,"nodeType":"ExpressionStatement","src":"5602:68:3"},{"AST":{"nodeType":"YulBlock","src":"5690:885:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5782:3:3","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"5787:3:3","type":"","value":"0x0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5792:12:3"},"nodeType":"YulFunctionCall","src":"5792:14:3"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5769:12:3"},"nodeType":"YulFunctionCall","src":"5769:38:3"},"nodeType":"YulExpressionStatement","src":"5769:38:3"},{"nodeType":"YulVariableDeclaration","src":"5899:71:3","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5927:3:3"},"nodeType":"YulFunctionCall","src":"5927:5:3"},{"name":"impl","nodeType":"YulIdentifier","src":"5934:4:3"},{"kind":"number","nodeType":"YulLiteral","src":"5940:3:3","type":"","value":"0x0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5945:12:3"},"nodeType":"YulFunctionCall","src":"5945:14:3"},{"kind":"number","nodeType":"YulLiteral","src":"5961:3:3","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"5966:3:3","type":"","value":"0x0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"5914:12:3"},"nodeType":"YulFunctionCall","src":"5914:56:3"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"5903:7:3","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6253:3:3","type":"","value":"0x0"},{"kind":"number","nodeType":"YulLiteral","src":"6258:3:3","type":"","value":"0x0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"6263:14:3"},"nodeType":"YulFunctionCall","src":"6263:16:3"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"6238:14:3"},"nodeType":"YulFunctionCall","src":"6238:42:3"},"nodeType":"YulExpressionStatement","src":"6238:42:3"},{"body":{"nodeType":"YulBlock","src":"6396:61:3","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6421:3:3","type":"","value":"0x0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"6426:14:3"},"nodeType":"YulFunctionCall","src":"6426:16:3"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6414:6:3"},"nodeType":"YulFunctionCall","src":"6414:29:3"},"nodeType":"YulExpressionStatement","src":"6414:29:3"}]},"condition":{"arguments":[{"name":"success","nodeType":"YulIdentifier","src":"6387:7:3"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6380:6:3"},"nodeType":"YulFunctionCall","src":"6380:15:3"},"nodeType":"YulIf","src":"6377:80:3"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6543:3:3","type":"","value":"0x0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"6548:14:3"},"nodeType":"YulFunctionCall","src":"6548:16:3"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"6536:6:3"},"nodeType":"YulFunctionCall","src":"6536:29:3"},"nodeType":"YulExpressionStatement","src":"6536:29:3"}]},"evmVersion":"london","externalReferences":[{"declaration":530,"isOffset":false,"isSlot":false,"src":"5934:4:3","valueSize":1}],"id":544,"nodeType":"InlineAssembly","src":"5681:894:3"}]},"documentation":{"id":526,"nodeType":"StructuredDocumentation","src":"5439:70:3","text":" @notice Performs the proxy call via a delegatecall."},"id":546,"implemented":true,"kind":"function","modifiers":[],"name":"_doProxyCall","nameLocation":"5523:12:3","nodeType":"FunctionDefinition","parameters":{"id":527,"nodeType":"ParameterList","parameters":[],"src":"5535:2:3"},"returnParameters":{"id":528,"nodeType":"ParameterList","parameters":[],"src":"5547:0:3"},"scope":573,"src":"5514:1067:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":558,"nodeType":"Block","src":"6762:125:3","statements":[{"assignments":[553],"declarations":[{"constant":false,"id":553,"mutability":"mutable","name":"impl","nameLocation":"6780:4:3","nodeType":"VariableDeclaration","scope":558,"src":"6772:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":552,"name":"address","nodeType":"ElementaryTypeName","src":"6772:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":554,"nodeType":"VariableDeclarationStatement","src":"6772:12:3"},{"AST":{"nodeType":"YulBlock","src":"6803:57:3","statements":[{"nodeType":"YulAssignment","src":"6817:33:3","value":{"arguments":[{"name":"IMPLEMENTATION_KEY","nodeType":"YulIdentifier","src":"6831:18:3"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"6825:5:3"},"nodeType":"YulFunctionCall","src":"6825:25:3"},"variableNames":[{"name":"impl","nodeType":"YulIdentifier","src":"6817:4:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":347,"isOffset":false,"isSlot":false,"src":"6831:18:3","valueSize":1},{"declaration":553,"isOffset":false,"isSlot":false,"src":"6817:4:3","valueSize":1}],"id":555,"nodeType":"InlineAssembly","src":"6794:66:3"},{"expression":{"id":556,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"6876:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":551,"id":557,"nodeType":"Return","src":"6869:11:3"}]},"documentation":{"id":547,"nodeType":"StructuredDocumentation","src":"6587:108:3","text":" @notice Queries the implementation address.\n @return Implementation address."},"id":559,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"6709:18:3","nodeType":"FunctionDefinition","parameters":{"id":548,"nodeType":"ParameterList","parameters":[],"src":"6727:2:3"},"returnParameters":{"id":551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":559,"src":"6753:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":549,"name":"address","nodeType":"ElementaryTypeName","src":"6753:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6752:9:3"},"scope":573,"src":"6700:187:3","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":571,"nodeType":"Block","src":"7055:119:3","statements":[{"assignments":[566],"declarations":[{"constant":false,"id":566,"mutability":"mutable","name":"owner","nameLocation":"7073:5:3","nodeType":"VariableDeclaration","scope":571,"src":"7065:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":565,"name":"address","nodeType":"ElementaryTypeName","src":"7065:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":567,"nodeType":"VariableDeclarationStatement","src":"7065:13:3"},{"AST":{"nodeType":"YulBlock","src":"7097:49:3","statements":[{"nodeType":"YulAssignment","src":"7111:25:3","value":{"arguments":[{"name":"OWNER_KEY","nodeType":"YulIdentifier","src":"7126:9:3"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"7120:5:3"},"nodeType":"YulFunctionCall","src":"7120:16:3"},"variableNames":[{"name":"owner","nodeType":"YulIdentifier","src":"7111:5:3"}]}]},"evmVersion":"london","externalReferences":[{"declaration":351,"isOffset":false,"isSlot":false,"src":"7126:9:3","valueSize":1},{"declaration":566,"isOffset":false,"isSlot":false,"src":"7111:5:3","valueSize":1}],"id":568,"nodeType":"InlineAssembly","src":"7088:58:3"},{"expression":{"id":569,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":566,"src":"7162:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":564,"id":570,"nodeType":"Return","src":"7155:12:3"}]},"documentation":{"id":560,"nodeType":"StructuredDocumentation","src":"6893:104:3","text":" @notice Queries the owner of the proxy contract.\n @return Owner address."},"id":572,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"7011:9:3","nodeType":"FunctionDefinition","parameters":{"id":561,"nodeType":"ParameterList","parameters":[],"src":"7020:2:3"},"returnParameters":{"id":564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":572,"src":"7046:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":562,"name":"address","nodeType":"ElementaryTypeName","src":"7046:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7045:9:3"},"scope":573,"src":"7002:172:3","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":574,"src":"294:6882:3","usedErrors":[]}],"src":"32:7145:3"},"id":3},"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol":{"ast":{"absolutePath":"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol","exportedSymbols":{"Lib_MerkleTree":[951]},"id":952,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":575,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"Lib_MerkleTree","contractDependencies":[],"contractKind":"library","documentation":{"id":576,"nodeType":"StructuredDocumentation","src":"57:56:4","text":" @title Lib_MerkleTree\n @author River Keefer"},"fullyImplemented":true,"id":951,"linearizedBaseContracts":[951],"name":"Lib_MerkleTree","nameLocation":"122:14:4","nodeType":"ContractDefinition","nodes":[{"body":{"id":761,"nodeType":"Block","src":"976:3028:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":586,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"994:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"994:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1013:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"994:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69625f4d65726b6c65547265653a204d7573742070726f76696465206174206c65617374206f6e65206c65616620686173682e","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1016:54:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef5a206da2bd9b9ab57ebb2321e125ed469e49d96947fdda2df492f6696cc8f6","typeString":"literal_string \"Lib_MerkleTree: Must provide at least one leaf hash.\""},"value":"Lib_MerkleTree: Must provide at least one leaf hash."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef5a206da2bd9b9ab57ebb2321e125ed469e49d96947fdda2df492f6696cc8f6","typeString":"literal_string \"Lib_MerkleTree: Must provide at least one leaf hash.\""}],"id":585,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"986:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"986:85:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"986:85:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":593,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"1086:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1086:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1106:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1086:21:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":602,"nodeType":"IfStatement","src":"1082:71:4","trueBody":{"id":601,"nodeType":"Block","src":"1109:44:4","statements":[{"expression":{"baseExpression":{"id":597,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"1130:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":599,"indexExpression":{"hexValue":"30","id":598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1130:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":584,"id":600,"nodeType":"Return","src":"1123:19:4"}]}},{"assignments":[608],"declarations":[{"constant":false,"id":608,"mutability":"mutable","name":"defaults","nameLocation":"1182:8:4","nodeType":"VariableDeclaration","scope":761,"src":"1163:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$16_memory_ptr","typeString":"uint256[16]"},"typeName":{"baseType":{"id":606,"name":"uint256","nodeType":"ElementaryTypeName","src":"1163:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":607,"length":{"hexValue":"3136","id":605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1171:2:4","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"ArrayTypeName","src":"1163:11:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$16_storage_ptr","typeString":"uint256[16]"}},"visibility":"internal"}],"id":626,"initialValue":{"components":[{"hexValue":"307832393064656364393534386236326138643630333435613938383338366663383462613662633935343834303038663633363266393331363065663365353633","id":609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1207:66:4","typeDescriptions":{"typeIdentifier":"t_rational_18569430475105882587588266137607568536673111973893317399460219858819262702947_by_1","typeString":"int_const 1856...(69 digits omitted)...2947"},"value":"0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563"},{"hexValue":"307836333364633464376461373235363636306138393266386631363034613434623534333236343963633865633563623363656434633465366163393464643164","id":610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1287:66:4","typeDescriptions":{"typeIdentifier":"t_rational_44888108242372473581777209500399118283956968619101614559551953743563797617949_by_1","typeString":"int_const 4488...(69 digits omitted)...7949"},"value":"0x633dc4d7da7256660a892f8f1604a44b5432649cc8ec5cb3ced4c4e6ac94dd1d"},{"hexValue":"307838393037343061386562303663653962653432326362386461356364616663326235386330613565323430333663353738646532613433336338323866663764","id":611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1367:66:4","typeDescriptions":{"typeIdentifier":"t_rational_61979674451149367381571057821439300649807181215214187431403537088362626744189_by_1","typeString":"int_const 6197...(69 digits omitted)...4189"},"value":"0x890740a8eb06ce9be422cb8da5cdafc2b58c0a5e24036c578de2a433c828ff7d"},{"hexValue":"307833623865633039653032366664633330353336356466633934653138396138316233386337353937623364393431633237396630343265383230366530626438","id":612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1447:66:4","typeDescriptions":{"typeIdentifier":"t_rational_26938679744838045851393538529112176311107548298405003380282284468813121326040_by_1","typeString":"int_const 2693...(69 digits omitted)...6040"},"value":"0x3b8ec09e026fdc305365dfc94e189a81b38c7597b3d941c279f042e8206e0bd8"},{"hexValue":"307865636435306565653338653338366264363262653962656462393930373036393531623635666530353362643964386135323161663735336431333965326461","id":613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1527:66:4","typeDescriptions":{"typeIdentifier":"t_rational_107122273737355912603609588713075098214489169839748477848264290276572174869210_by_1","typeString":"int_const 1071...(70 digits omitted)...9210"},"value":"0xecd50eee38e386bd62be9bedb990706951b65fe053bd9d8a521af753d139e2da"},{"hexValue":"307864656666663664333330626235343033663633623134663333623537383237343136306465336135306466346566656366306530646237336263646433646135","id":614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1607:66:4","typeDescriptions":{"typeIdentifier":"t_rational_100865701910285735816208505719434435278576930296521966977936642912629796191653_by_1","typeString":"int_const 1008...(70 digits omitted)...1653"},"value":"0xdefff6d330bb5403f63b14f33b578274160de3a50df4efecf0e0db73bcdd3da5"},{"hexValue":"307836313762646431316637633061313166343964623232663632393338376131326461373539366639643137303464373436353137376336336438386563376437","id":615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1687:66:4","typeDescriptions":{"typeIdentifier":"t_rational_44093194271897694175220355125376950807210953251377334103145863970694944966615_by_1","typeString":"int_const 4409...(69 digits omitted)...6615"},"value":"0x617bdd11f7c0a11f49db22f629387a12da7596f9d1704d7465177c63d88ec7d7"},{"hexValue":"307832393263323361396161316438626561376532343335653535356134613630653337396135613335663366343532626165363031323130373366623665656164","id":616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1767:66:4","typeDescriptions":{"typeIdentifier":"t_rational_18622814198032539580016879025773984308192383161940141514973002076003553963693_by_1","typeString":"int_const 1862...(69 digits omitted)...3693"},"value":"0x292c23a9aa1d8bea7e2435e555a4a60e379a5a35f3f452bae60121073fb6eead"},{"hexValue":"307865316365613932656439396163646362303435613637323662326638373130376538613631363230613233326366346437643562353736366233393532653130","id":617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1847:66:4","typeDescriptions":{"typeIdentifier":"t_rational_102135529084785888764292842274409189687888201175222041784247010669912881704464_by_1","typeString":"int_const 1021...(70 digits omitted)...4464"},"value":"0xe1cea92ed99acdcb045a6726b2f87107e8a61620a232cf4d7d5b5766b3952e10"},{"hexValue":"307837616436366330613638633732636238396534666234333033383431393636653430363261373661623937343531653362396662353236613563656237663832","id":618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1927:66:4","typeDescriptions":{"typeIdentifier":"t_rational_55561018468260407729870941073077846721728929091742604027108121100220210315138_by_1","typeString":"int_const 5556...(69 digits omitted)...5138"},"value":"0x7ad66c0a68c72cb89e4fb4303841966e4062a76ab97451e3b9fb526a5ceb7f82"},{"hexValue":"307865303236636335613461656433633232613538636264336432616337353463393335326335343336663633383034326463613939303334653833363336353136","id":619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:66:4","typeDescriptions":{"typeIdentifier":"t_rational_101386628661653897280976891580624273536709363683509075583758832792718536828182_by_1","typeString":"int_const 1013...(70 digits omitted)...8182"},"value":"0xe026cc5a4aed3c22a58cbd3d2ac754c9352c5436f638042dca99034e83636516"},{"hexValue":"307833643034636666643862343661383734656466356366616536333037376465383566383439613636303432363639376230366138323963373064643134303963","id":620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2087:66:4","typeDescriptions":{"typeIdentifier":"t_rational_27599586648866131235159548010486640009227725342745274029245421536147990986908_by_1","typeString":"int_const 2759...(69 digits omitted)...6908"},"value":"0x3d04cffd8b46a874edf5cfae63077de85f849a660426697b06a829c70dd1409c"},{"hexValue":"307861643637366161333337613438356534373238613062323430643932623365663762336333373264303664313839333232626664356636316631653732303365","id":621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2167:66:4","typeDescriptions":{"typeIdentifier":"t_rational_78432844038021182205216304609166970579794851302744371199546552537916757188670_by_1","typeString":"int_const 7843...(69 digits omitted)...8670"},"value":"0xad676aa337a485e4728a0b240d92b3ef7b3c372d06d189322bfd5f61f1e7203e"},{"hexValue":"307861326663613461343936353866396661623761613633323839633931623763376236633833326136643065363933333466663562306133343833643039646162","id":622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2247:66:4","typeDescriptions":{"typeIdentifier":"t_rational_73721063254478881384596136227641771071697500514414686326778867540028315180459_by_1","typeString":"int_const 7372...(69 digits omitted)...0459"},"value":"0xa2fca4a49658f9fab7aa63289c91b7c7b6c832a6d0e69334ff5b0a3483d09dab"},{"hexValue":"307834656266643963643762636132353035663762656635396363316331326563633730386666663236616534616631396162653835326166653965323063383632","id":623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2327:66:4","typeDescriptions":{"typeIdentifier":"t_rational_35619373197650339367837839351315910890302463135634340764473697891485631957090_by_1","typeString":"int_const 3561...(69 digits omitted)...7090"},"value":"0x4ebfd9cd7bca2505f7bef59cc1c12ecc708fff26ae4af19abe852afe9e20c862"},{"hexValue":"307832646566313064313364643136396635353066353738626461333433643937313761313338353632653030393362333830613131323037383964353363663130","id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2407:66:4","typeDescriptions":{"typeIdentifier":"t_rational_20776470703809621088346010925491277831679459958617056148946644807440798043920_by_1","typeString":"int_const 2077...(69 digits omitted)...3920"},"value":"0x2def10d13dd169f550f578bda343d9717a138562e0093b380a1120789d53cf10"}],"id":625,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1193:1290:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$16_memory_ptr","typeString":"uint256[16] memory"}},"nodeType":"VariableDeclarationStatement","src":"1163:1320:4"},{"assignments":[628],"declarations":[{"constant":false,"id":628,"mutability":"mutable","name":"buf","nameLocation":"2555:3:4","nodeType":"VariableDeclaration","scope":761,"src":"2542:16:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2542:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":633,"initialValue":{"arguments":[{"hexValue":"3634","id":631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2571:2:4","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}],"id":630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2561:9:4","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":629,"name":"bytes","nodeType":"ElementaryTypeName","src":"2565:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2561:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2542:32:4"},{"assignments":[635],"declarations":[{"constant":false,"id":635,"mutability":"mutable","name":"leftSibling","nameLocation":"2657:11:4","nodeType":"VariableDeclaration","scope":761,"src":"2649:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2649:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":636,"nodeType":"VariableDeclarationStatement","src":"2649:19:4"},{"assignments":[638],"declarations":[{"constant":false,"id":638,"mutability":"mutable","name":"rightSibling","nameLocation":"2686:12:4","nodeType":"VariableDeclaration","scope":761,"src":"2678:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2678:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":639,"nodeType":"VariableDeclarationStatement","src":"2678:20:4"},{"assignments":[641],"declarations":[{"constant":false,"id":641,"mutability":"mutable","name":"rowSize","nameLocation":"2776:7:4","nodeType":"VariableDeclaration","scope":761,"src":"2768:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":640,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":644,"initialValue":{"expression":{"id":642,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"2786:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2786:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2768:34:4"},{"assignments":[646],"declarations":[{"constant":false,"id":646,"mutability":"mutable","name":"depth","nameLocation":"2877:5:4","nodeType":"VariableDeclaration","scope":761,"src":"2869:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":645,"name":"uint256","nodeType":"ElementaryTypeName","src":"2869:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":648,"initialValue":{"hexValue":"30","id":647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2885:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2869:17:4"},{"assignments":[650],"declarations":[{"constant":false,"id":650,"mutability":"mutable","name":"halfRowSize","nameLocation":"2939:11:4","nodeType":"VariableDeclaration","scope":761,"src":"2931:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":649,"name":"uint256","nodeType":"ElementaryTypeName","src":"2931:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":651,"nodeType":"VariableDeclarationStatement","src":"2931:19:4"},{"assignments":[653],"declarations":[{"constant":false,"id":653,"mutability":"mutable","name":"rowSizeIsOdd","nameLocation":"2980:12:4","nodeType":"VariableDeclaration","scope":761,"src":"2975:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":652,"name":"bool","nodeType":"ElementaryTypeName","src":"2975:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":654,"nodeType":"VariableDeclarationStatement","src":"2975:17:4"},{"body":{"id":755,"nodeType":"Block","src":"3043:925:4","statements":[{"expression":{"id":662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":658,"name":"halfRowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"3057:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":659,"name":"rowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"3071:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3081:1:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3071:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3057:25:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":663,"nodeType":"ExpressionStatement","src":"3057:25:4"},{"expression":{"id":670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":664,"name":"rowSizeIsOdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"3096:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":665,"name":"rowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"3111:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3121:1:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3111:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3126:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3111:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3096:31:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":671,"nodeType":"ExpressionStatement","src":"3096:31:4"},{"body":{"id":711,"nodeType":"Block","src":"3184:322:4","statements":[{"expression":{"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":682,"name":"leftSibling","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"3202:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":683,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"3216:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":688,"indexExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3227:1:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"3231:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3227:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3226:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3216:18:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3202:32:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":690,"nodeType":"ExpressionStatement","src":"3202:32:4"},{"expression":{"id":700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":691,"name":"rightSibling","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"3252:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":692,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"3267:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":699,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3278:1:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":694,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"3282:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3278:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":696,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3277:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3287:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3277:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3267:22:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3252:37:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":701,"nodeType":"ExpressionStatement","src":"3252:37:4"},{"AST":{"nodeType":"YulBlock","src":"3316:128:4","statements":[{"expression":{"arguments":[{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3349:3:4"},{"kind":"number","nodeType":"YulLiteral","src":"3354:2:4","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3345:3:4"},"nodeType":"YulFunctionCall","src":"3345:12:4"},{"name":"leftSibling","nodeType":"YulIdentifier","src":"3359:11:4"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3338:6:4"},"nodeType":"YulFunctionCall","src":"3338:33:4"},"nodeType":"YulExpressionStatement","src":"3338:33:4"},{"expression":{"arguments":[{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3403:3:4"},{"kind":"number","nodeType":"YulLiteral","src":"3408:2:4","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3399:3:4"},"nodeType":"YulFunctionCall","src":"3399:12:4"},{"name":"rightSibling","nodeType":"YulIdentifier","src":"3413:12:4"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3392:6:4"},"nodeType":"YulFunctionCall","src":"3392:34:4"},"nodeType":"YulExpressionStatement","src":"3392:34:4"}]},"evmVersion":"london","externalReferences":[{"declaration":628,"isOffset":false,"isSlot":false,"src":"3349:3:4","valueSize":1},{"declaration":628,"isOffset":false,"isSlot":false,"src":"3403:3:4","valueSize":1},{"declaration":635,"isOffset":false,"isSlot":false,"src":"3359:11:4","valueSize":1},{"declaration":638,"isOffset":false,"isSlot":false,"src":"3413:12:4","valueSize":1}],"id":702,"nodeType":"InlineAssembly","src":"3307:137:4"},{"expression":{"id":709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":703,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"3462:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":705,"indexExpression":{"id":704,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"3472:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3462:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":707,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"3487:3:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":706,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3477:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3477:14:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3462:29:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":710,"nodeType":"ExpressionStatement","src":"3462:29:4"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"3162:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":677,"name":"halfRowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"3166:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3162:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":712,"initializationExpression":{"assignments":[673],"declarations":[{"constant":false,"id":673,"mutability":"mutable","name":"i","nameLocation":"3155:1:4","nodeType":"VariableDeclaration","scope":712,"src":"3147:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":672,"name":"uint256","nodeType":"ElementaryTypeName","src":"3147:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":675,"initialValue":{"hexValue":"30","id":674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3159:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3147:13:4"},"loopExpression":{"expression":{"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3179:3:4","subExpression":{"id":679,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"3179:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":681,"nodeType":"ExpressionStatement","src":"3179:3:4"},"nodeType":"ForStatement","src":"3142:364:4"},{"condition":{"id":713,"name":"rowSizeIsOdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"3524:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":741,"nodeType":"IfStatement","src":"3520:356:4","trueBody":{"id":740,"nodeType":"Block","src":"3538:338:4","statements":[{"expression":{"id":720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":714,"name":"leftSibling","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"3556:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":715,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"3570:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":719,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":716,"name":"rowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"3580:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3590:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3580:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3570:22:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3556:36:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":721,"nodeType":"ExpressionStatement","src":"3556:36:4"},{"expression":{"id":729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":722,"name":"rightSibling","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"3610:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":725,"name":"defaults","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"3633:8:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$16_memory_ptr","typeString":"uint256[16] memory"}},"id":727,"indexExpression":{"id":726,"name":"depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"3642:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3633:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3625:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3625:7:4","typeDescriptions":{}}},"id":728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3625:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3610:39:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":730,"nodeType":"ExpressionStatement","src":"3610:39:4"},{"AST":{"nodeType":"YulBlock","src":"3676:128:4","statements":[{"expression":{"arguments":[{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3709:3:4"},{"kind":"number","nodeType":"YulLiteral","src":"3714:2:4","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3705:3:4"},"nodeType":"YulFunctionCall","src":"3705:12:4"},{"name":"leftSibling","nodeType":"YulIdentifier","src":"3719:11:4"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3698:6:4"},"nodeType":"YulFunctionCall","src":"3698:33:4"},"nodeType":"YulExpressionStatement","src":"3698:33:4"},{"expression":{"arguments":[{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3763:3:4"},{"kind":"number","nodeType":"YulLiteral","src":"3768:2:4","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3759:3:4"},"nodeType":"YulFunctionCall","src":"3759:12:4"},{"name":"rightSibling","nodeType":"YulIdentifier","src":"3773:12:4"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3752:6:4"},"nodeType":"YulFunctionCall","src":"3752:34:4"},"nodeType":"YulExpressionStatement","src":"3752:34:4"}]},"evmVersion":"london","externalReferences":[{"declaration":628,"isOffset":false,"isSlot":false,"src":"3709:3:4","valueSize":1},{"declaration":628,"isOffset":false,"isSlot":false,"src":"3763:3:4","valueSize":1},{"declaration":635,"isOffset":false,"isSlot":false,"src":"3719:11:4","valueSize":1},{"declaration":638,"isOffset":false,"isSlot":false,"src":"3773:12:4","valueSize":1}],"id":731,"nodeType":"InlineAssembly","src":"3667:137:4"},{"expression":{"id":738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":732,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"3822:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":734,"indexExpression":{"id":733,"name":"halfRowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"3832:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3822:22:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":736,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"3857:3:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":735,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3847:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3847:14:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3822:39:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":739,"nodeType":"ExpressionStatement","src":"3822:39:4"}]}},{"expression":{"id":750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":742,"name":"rowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"3890:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":743,"name":"halfRowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"3900:11:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"id":744,"name":"rowSizeIsOdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"3915:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3934:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3915:20:4","trueExpression":{"hexValue":"31","id":745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3930:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3914:22:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3900:36:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3890:46:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":751,"nodeType":"ExpressionStatement","src":"3890:46:4"},{"expression":{"id":753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3950:7:4","subExpression":{"id":752,"name":"depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"3950:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":754,"nodeType":"ExpressionStatement","src":"3950:7:4"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":655,"name":"rowSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"3030:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3040:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3030:11:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":756,"nodeType":"WhileStatement","src":"3023:945:4"},{"expression":{"baseExpression":{"id":757,"name":"_elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"3985:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":759,"indexExpression":{"hexValue":"30","id":758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3995:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3985:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":584,"id":760,"nodeType":"Return","src":"3978:19:4"}]},"documentation":{"id":577,"nodeType":"StructuredDocumentation","src":"229:659:4","text":" Calculates a merkle root for a list of 32-byte leaf hashes.  WARNING: If the number\n of leaves passed in is not a power of two, it pads out the tree with zero hashes.\n If you do not know the original length of elements for the tree you are verifying, then\n this may allow empty leaves past _elements.length to pass a verification check down the line.\n Note that the _elements argument is modified, therefore it must not be used again afterwards\n @param _elements Array of hashes from which to generate a merkle root.\n @return Merkle root of the leaves, with zero hashes for non-powers-of-two (see above)."},"id":762,"implemented":true,"kind":"function","modifiers":[],"name":"getMerkleRoot","nameLocation":"902:13:4","nodeType":"FunctionDefinition","parameters":{"id":581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":580,"mutability":"mutable","name":"_elements","nameLocation":"933:9:4","nodeType":"VariableDeclaration","scope":762,"src":"916:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"916:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":579,"nodeType":"ArrayTypeName","src":"916:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"915:28:4"},"returnParameters":{"id":584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":583,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":762,"src":"967:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"967:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"966:9:4"},"scope":951,"src":"893:3111:4","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":861,"nodeType":"Block","src":"4917:781:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":780,"name":"_totalLeaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":774,"src":"4935:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4950:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4935:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d7573742062652067726561746572207468616e207a65726f2e","id":783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4953:57:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d69eed63d2fabed7c4c92abdce9fbd1db49fe88c5f62641219c29215d31830d","typeString":"literal_string \"Lib_MerkleTree: Total leaves must be greater than zero.\""},"value":"Lib_MerkleTree: Total leaves must be greater than zero."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d69eed63d2fabed7c4c92abdce9fbd1db49fe88c5f62641219c29215d31830d","typeString":"literal_string \"Lib_MerkleTree: Total leaves must be greater than zero.\""}],"id":779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4927:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4927:84:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":785,"nodeType":"ExpressionStatement","src":"4927:84:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":787,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"5030:6:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":788,"name":"_totalLeaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":774,"src":"5039:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5030:21:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f756e64732e","id":790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5053:38:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_68cc56f10282cc58aac079fe25b2b3414f4eefd89d7c32080c5a85f381d44469","typeString":"literal_string \"Lib_MerkleTree: Index out of bounds.\""},"value":"Lib_MerkleTree: Index out of bounds."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68cc56f10282cc58aac079fe25b2b3414f4eefd89d7c32080c5a85f381d44469","typeString":"literal_string \"Lib_MerkleTree: Index out of bounds.\""}],"id":786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5022:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5022:70:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":792,"nodeType":"ExpressionStatement","src":"5022:70:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":794,"name":"_siblings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":772,"src":"5124:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5124:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":797,"name":"_totalLeaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":774,"src":"5154:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":796,"name":"_ceilLog2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"5144:9:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5144:23:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5124:43:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69625f4d65726b6c65547265653a20546f74616c207369626c696e677320646f6573206e6f7420636f72726563746c7920636f72726573706f6e6420746f20746f74616c206c65617665732e","id":800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5181:79:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_cdb62154d2ff47b4d81c32398ab8daaaacc93506f1e06c4d234ee5b680c9aab8","typeString":"literal_string \"Lib_MerkleTree: Total siblings does not correctly correspond to total leaves.\""},"value":"Lib_MerkleTree: Total siblings does not correctly correspond to total leaves."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cdb62154d2ff47b4d81c32398ab8daaaacc93506f1e06c4d234ee5b680c9aab8","typeString":"literal_string \"Lib_MerkleTree: Total siblings does not correctly correspond to total leaves.\""}],"id":793,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5103:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5103:167:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":802,"nodeType":"ExpressionStatement","src":"5103:167:4"},{"assignments":[804],"declarations":[{"constant":false,"id":804,"mutability":"mutable","name":"computedRoot","nameLocation":"5289:12:4","nodeType":"VariableDeclaration","scope":861,"src":"5281:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5281:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":806,"initialValue":{"id":805,"name":"_leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"5304:5:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5281:28:4"},{"body":{"id":855,"nodeType":"Block","src":"5367:286:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":818,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"5386:6:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5395:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5386:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":821,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5385:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5401:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5385:17:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":849,"nodeType":"Block","src":"5513:103:4","statements":[{"expression":{"id":847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":837,"name":"computedRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"5531:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":841,"name":"computedRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"5573:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":842,"name":"_siblings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":772,"src":"5587:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":844,"indexExpression":{"id":843,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"5597:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5587:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":839,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5556:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5556:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5556:44:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":838,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5546:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5546:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5531:70:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":848,"nodeType":"ExpressionStatement","src":"5531:70:4"}]},"id":850,"nodeType":"IfStatement","src":"5381:235:4","trueBody":{"id":836,"nodeType":"Block","src":"5404:103:4","statements":[{"expression":{"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":824,"name":"computedRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"5422:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"baseExpression":{"id":828,"name":"_siblings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":772,"src":"5464:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":830,"indexExpression":{"id":829,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"5474:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5464:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":831,"name":"computedRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"5478:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5447:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5447:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5447:44:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":825,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5437:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5437:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5422:70:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":835,"nodeType":"ExpressionStatement","src":"5422:70:4"}]}},{"expression":{"id":853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":851,"name":"_index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"5630:6:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5641:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5630:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":854,"nodeType":"ExpressionStatement","src":"5630:12:4"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":811,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"5340:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":812,"name":"_siblings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":772,"src":"5344:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5344:16:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5340:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":856,"initializationExpression":{"assignments":[808],"declarations":[{"constant":false,"id":808,"mutability":"mutable","name":"i","nameLocation":"5333:1:4","nodeType":"VariableDeclaration","scope":856,"src":"5325:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":807,"name":"uint256","nodeType":"ElementaryTypeName","src":"5325:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":810,"initialValue":{"hexValue":"30","id":809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5337:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5325:13:4"},"loopExpression":{"expression":{"id":816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5362:3:4","subExpression":{"id":815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"5362:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":817,"nodeType":"ExpressionStatement","src":"5362:3:4"},"nodeType":"ForStatement","src":"5320:333:4"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":857,"name":"_root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"5670:5:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":858,"name":"computedRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"5679:12:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5670:21:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":778,"id":860,"nodeType":"Return","src":"5663:28:4"}]},"documentation":{"id":763,"nodeType":"StructuredDocumentation","src":"4010:715:4","text":" Verifies a merkle branch for the given leaf hash.  Assumes the original length\n of leaves generated is a known, correct input, and does not return true for indices\n extending past that index (even if _siblings would be otherwise valid.)\n @param _root The Merkle root to verify against.\n @param _leaf The leaf hash to verify inclusion of.\n @param _index The index in the tree of this leaf.\n @param _siblings Array of sibline nodes in the inclusion proof, starting from depth 0\n (bottom of the tree).\n @param _totalLeaves The total number of leaves originally passed into.\n @return Whether or not the merkle branch and leaf passes verification."},"id":862,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"4739:6:4","nodeType":"FunctionDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"mutability":"mutable","name":"_root","nameLocation":"4763:5:4","nodeType":"VariableDeclaration","scope":862,"src":"4755:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":764,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4755:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"_leaf","nameLocation":"4786:5:4","nodeType":"VariableDeclaration","scope":862,"src":"4778:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4778:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":769,"mutability":"mutable","name":"_index","nameLocation":"4809:6:4","nodeType":"VariableDeclaration","scope":862,"src":"4801:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":768,"name":"uint256","nodeType":"ElementaryTypeName","src":"4801:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":772,"mutability":"mutable","name":"_siblings","nameLocation":"4842:9:4","nodeType":"VariableDeclaration","scope":862,"src":"4825:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4825:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":771,"nodeType":"ArrayTypeName","src":"4825:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":774,"mutability":"mutable","name":"_totalLeaves","nameLocation":"4869:12:4","nodeType":"VariableDeclaration","scope":862,"src":"4861:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":773,"name":"uint256","nodeType":"ElementaryTypeName","src":"4861:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4745:142:4"},"returnParameters":{"id":778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":862,"src":"4911:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":776,"name":"bool","nodeType":"ElementaryTypeName","src":"4911:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4910:6:4"},"scope":951,"src":"4730:968:4","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":949,"nodeType":"Block","src":"6027:701:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":871,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"6045:3:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6051:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6045:7:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d70757465206365696c286c6f675f3229206f6620302e","id":874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6054:50:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_724579e27bab982d017a7d360dc241a64fbf444ff61c16f8f4c18899a52189a5","typeString":"literal_string \"Lib_MerkleTree: Cannot compute ceil(log_2) of 0.\""},"value":"Lib_MerkleTree: Cannot compute ceil(log_2) of 0."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_724579e27bab982d017a7d360dc241a64fbf444ff61c16f8f4c18899a52189a5","typeString":"literal_string \"Lib_MerkleTree: Cannot compute ceil(log_2) of 0.\""}],"id":870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6037:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6037:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":876,"nodeType":"ExpressionStatement","src":"6037:68:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":877,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"6120:3:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6127:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6120:8:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":883,"nodeType":"IfStatement","src":"6116:47:4","trueBody":{"id":882,"nodeType":"Block","src":"6130:33:4","statements":[{"expression":{"hexValue":"30","id":880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6151:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":869,"id":881,"nodeType":"Return","src":"6144:8:4"}]}},{"assignments":[885],"declarations":[{"constant":false,"id":885,"mutability":"mutable","name":"val","nameLocation":"6320:3:4","nodeType":"VariableDeclaration","scope":949,"src":"6312:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":884,"name":"uint256","nodeType":"ElementaryTypeName","src":"6312:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":887,"initialValue":{"id":886,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"6326:3:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6312:17:4"},{"assignments":[889],"declarations":[{"constant":false,"id":889,"mutability":"mutable","name":"highest","nameLocation":"6347:7:4","nodeType":"VariableDeclaration","scope":949,"src":"6339:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":888,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":891,"initialValue":{"hexValue":"30","id":890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6357:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6339:19:4"},{"body":{"id":930,"nodeType":"Block","src":"6407:143:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":903,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"6425:3:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"31","id":906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6442:1:4","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":905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6434:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":904,"name":"uint256","nodeType":"ElementaryTypeName","src":"6434:7:4","typeDescriptions":{}}},"id":907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6434:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"6448:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6434:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":910,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6433:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6453:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6433:21:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":913,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6432:23:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":914,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"6459:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6432:28:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6431:30:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6425:36:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6465:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6425:41:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":929,"nodeType":"IfStatement","src":"6421:119:4","trueBody":{"id":928,"nodeType":"Block","src":"6468:72:4","statements":[{"expression":{"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":920,"name":"highest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"6486:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":921,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"6497:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6486:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":923,"nodeType":"ExpressionStatement","src":"6486:12:4"},{"expression":{"id":926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":924,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"6516:3:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":925,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"6524:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6516:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":927,"nodeType":"ExpressionStatement","src":"6516:9:4"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":896,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"6390:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6395:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6390:6:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":931,"initializationExpression":{"assignments":[893],"declarations":[{"constant":false,"id":893,"mutability":"mutable","name":"i","nameLocation":"6381:1:4","nodeType":"VariableDeclaration","scope":931,"src":"6373:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":892,"name":"uint256","nodeType":"ElementaryTypeName","src":"6373:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":895,"initialValue":{"hexValue":"313238","id":894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6385:3:4","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"nodeType":"VariableDeclarationStatement","src":"6373:15:4"},"loopExpression":{"expression":{"id":901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":899,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"6398:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6404:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6398:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":902,"nodeType":"ExpressionStatement","src":"6398:7:4"},"nodeType":"ForStatement","src":"6368:182:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"31","id":934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6637:1:4","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":933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6629:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":932,"name":"uint256","nodeType":"ElementaryTypeName","src":"6629:7:4","typeDescriptions":{}}},"id":935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6629:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":936,"name":"highest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"6643:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6629:21:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6628:23:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":939,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"6655:3:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6628:30:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":946,"nodeType":"IfStatement","src":"6624:73:4","trueBody":{"id":945,"nodeType":"Block","src":"6660:37:4","statements":[{"expression":{"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":941,"name":"highest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"6674:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6685:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6674:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":944,"nodeType":"ExpressionStatement","src":"6674:12:4"}]}},{"expression":{"id":947,"name":"highest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"6714:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":869,"id":948,"nodeType":"Return","src":"6707:14:4"}]},"documentation":{"id":863,"nodeType":"StructuredDocumentation","src":"5787:172:4","text":" Calculates the integer ceiling of the log base 2 of an input.\n @param _in Unsigned input to calculate the log.\n @return ceil(log_base_2(_in))"},"id":950,"implemented":true,"kind":"function","modifiers":[],"name":"_ceilLog2","nameLocation":"5973:9:4","nodeType":"FunctionDefinition","parameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":865,"mutability":"mutable","name":"_in","nameLocation":"5991:3:4","nodeType":"VariableDeclaration","scope":950,"src":"5983:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":864,"name":"uint256","nodeType":"ElementaryTypeName","src":"5983:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5982:13:4"},"returnParameters":{"id":869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":950,"src":"6018:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":867,"name":"uint256","nodeType":"ElementaryTypeName","src":"6018:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6017:9:4"},"scope":951,"src":"5964:764:4","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":952,"src":"114:6616:4","usedErrors":[]}],"src":"32:6699:4"},"id":4},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[1753],"ContextUpgradeable":[1795],"Initializable":[1339],"OwnableUpgradeable":[1083]},"id":1084,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":953,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:5"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":954,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1084,"sourceUnit":1796,"src":"127:41:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":955,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1084,"sourceUnit":1340,"src":"169:42:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":957,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":1339,"src":"748:13:5"},"id":958,"nodeType":"InheritanceSpecifier","src":"748:13:5"},{"baseName":{"id":959,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1795,"src":"763:18:5"},"id":960,"nodeType":"InheritanceSpecifier","src":"763:18:5"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":956,"nodeType":"StructuredDocumentation","src":"213:494:5","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":1083,"linearizedBaseContracts":[1083,1795,1339],"name":"OwnableUpgradeable","nameLocation":"726:18:5","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":962,"mutability":"mutable","name":"_owner","nameLocation":"804:6:5","nodeType":"VariableDeclaration","scope":1083,"src":"788:22:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":961,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":968,"name":"OwnershipTransferred","nameLocation":"823:20:5","nodeType":"EventDefinition","parameters":{"id":967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":964,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"860:13:5","nodeType":"VariableDeclaration","scope":968,"src":"844:29:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":963,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":966,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"891:8:5","nodeType":"VariableDeclaration","scope":968,"src":"875:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":965,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:57:5"},"src":"817:84:5"},{"body":{"id":977,"nodeType":"Block","src":"1055:43:5","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":974,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":989,"src":"1065:24:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1065:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":976,"nodeType":"ExpressionStatement","src":"1065:26:5"}]},"documentation":{"id":969,"nodeType":"StructuredDocumentation","src":"907:91:5","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":978,"implemented":true,"kind":"function","modifiers":[{"id":972,"kind":"modifierInvocation","modifierName":{"id":971,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":1284,"src":"1038:16:5"},"nodeType":"ModifierInvocation","src":"1038:16:5"}],"name":"__Ownable_init","nameLocation":"1012:14:5","nodeType":"FunctionDefinition","parameters":{"id":970,"nodeType":"ParameterList","parameters":[],"src":"1026:2:5"},"returnParameters":{"id":973,"nodeType":"ParameterList","parameters":[],"src":"1055:0:5"},"scope":1083,"src":"1003:95:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":988,"nodeType":"Block","src":"1166:49:5","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":984,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"1195:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1195:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":983,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"1176:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1176:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":987,"nodeType":"ExpressionStatement","src":"1176:32:5"}]},"id":989,"implemented":true,"kind":"function","modifiers":[{"id":981,"kind":"modifierInvocation","modifierName":{"id":980,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":1284,"src":"1149:16:5"},"nodeType":"ModifierInvocation","src":"1149:16:5"}],"name":"__Ownable_init_unchained","nameLocation":"1113:24:5","nodeType":"FunctionDefinition","parameters":{"id":979,"nodeType":"ParameterList","parameters":[],"src":"1137:2:5"},"returnParameters":{"id":982,"nodeType":"ParameterList","parameters":[],"src":"1166:0:5"},"scope":1083,"src":"1104:111:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":996,"nodeType":"Block","src":"1324:41:5","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":992,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1020,"src":"1334:11:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1334:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":994,"nodeType":"ExpressionStatement","src":"1334:13:5"},{"id":995,"nodeType":"PlaceholderStatement","src":"1357:1:5"}]},"documentation":{"id":990,"nodeType":"StructuredDocumentation","src":"1221:77:5","text":" @dev Throws if called by any account other than the owner."},"id":997,"name":"onlyOwner","nameLocation":"1312:9:5","nodeType":"ModifierDefinition","parameters":{"id":991,"nodeType":"ParameterList","parameters":[],"src":"1321:2:5"},"src":"1303:62:5","virtual":false,"visibility":"internal"},{"body":{"id":1005,"nodeType":"Block","src":"1496:30:5","statements":[{"expression":{"id":1003,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"1513:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1002,"id":1004,"nodeType":"Return","src":"1506:13:5"}]},"documentation":{"id":998,"nodeType":"StructuredDocumentation","src":"1371:65:5","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":1006,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1450:5:5","nodeType":"FunctionDefinition","parameters":{"id":999,"nodeType":"ParameterList","parameters":[],"src":"1455:2:5"},"returnParameters":{"id":1002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1006,"src":"1487:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1000,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1486:9:5"},"scope":1083,"src":"1441:85:5","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1019,"nodeType":"Block","src":"1644:85:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1011,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1006,"src":"1662:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1662:7:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1013,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"1673:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1673:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1662:23:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":1016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1687:34:5","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":1010,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1654:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:68:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1018,"nodeType":"ExpressionStatement","src":"1654:68:5"}]},"documentation":{"id":1007,"nodeType":"StructuredDocumentation","src":"1532:62:5","text":" @dev Throws if the sender is not the owner."},"id":1020,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1608:11:5","nodeType":"FunctionDefinition","parameters":{"id":1008,"nodeType":"ParameterList","parameters":[],"src":"1619:2:5"},"returnParameters":{"id":1009,"nodeType":"ParameterList","parameters":[],"src":"1644:0:5"},"scope":1083,"src":"1599:130:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1033,"nodeType":"Block","src":"2118:47:5","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2155:1:5","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":1028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2147:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1027,"name":"address","nodeType":"ElementaryTypeName","src":"2147:7:5","typeDescriptions":{}}},"id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2147:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1026,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"2128:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2128:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"ExpressionStatement","src":"2128:30:5"}]},"documentation":{"id":1021,"nodeType":"StructuredDocumentation","src":"1735:324:5","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":1034,"implemented":true,"kind":"function","modifiers":[{"id":1024,"kind":"modifierInvocation","modifierName":{"id":1023,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"2108:9:5"},"nodeType":"ModifierInvocation","src":"2108:9:5"}],"name":"renounceOwnership","nameLocation":"2073:17:5","nodeType":"FunctionDefinition","parameters":{"id":1022,"nodeType":"ParameterList","parameters":[],"src":"2090:2:5"},"returnParameters":{"id":1025,"nodeType":"ParameterList","parameters":[],"src":"2118:0:5"},"scope":1083,"src":"2064:101:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1056,"nodeType":"Block","src":"2384:128:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1043,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1037,"src":"2402:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2422:1:5","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":1045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2414:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1044,"name":"address","nodeType":"ElementaryTypeName","src":"2414:7:5","typeDescriptions":{}}},"id":1047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2414:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2402:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":1049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2426:40:5","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":1042,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2394:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2394:73:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1051,"nodeType":"ExpressionStatement","src":"2394:73:5"},{"expression":{"arguments":[{"id":1053,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1037,"src":"2496:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1052,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"2477:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2477:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1055,"nodeType":"ExpressionStatement","src":"2477:28:5"}]},"documentation":{"id":1035,"nodeType":"StructuredDocumentation","src":"2171:138:5","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":1057,"implemented":true,"kind":"function","modifiers":[{"id":1040,"kind":"modifierInvocation","modifierName":{"id":1039,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"2374:9:5"},"nodeType":"ModifierInvocation","src":"2374:9:5"}],"name":"transferOwnership","nameLocation":"2323:17:5","nodeType":"FunctionDefinition","parameters":{"id":1038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1037,"mutability":"mutable","name":"newOwner","nameLocation":"2349:8:5","nodeType":"VariableDeclaration","scope":1057,"src":"2341:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1036,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2340:18:5"},"returnParameters":{"id":1041,"nodeType":"ParameterList","parameters":[],"src":"2384:0:5"},"scope":1083,"src":"2314:198:5","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1076,"nodeType":"Block","src":"2729:124:5","statements":[{"assignments":[1064],"declarations":[{"constant":false,"id":1064,"mutability":"mutable","name":"oldOwner","nameLocation":"2747:8:5","nodeType":"VariableDeclaration","scope":1076,"src":"2739:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1063,"name":"address","nodeType":"ElementaryTypeName","src":"2739:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1066,"initialValue":{"id":1065,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"2758:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2739:25:5"},{"expression":{"id":1069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1067,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"2774:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1068,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"2783:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2774:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1070,"nodeType":"ExpressionStatement","src":"2774:17:5"},{"eventCall":{"arguments":[{"id":1072,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1064,"src":"2827:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1073,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"2837:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1071,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"2806:20:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2806:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1075,"nodeType":"EmitStatement","src":"2801:45:5"}]},"documentation":{"id":1058,"nodeType":"StructuredDocumentation","src":"2518:143:5","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":1077,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2675:18:5","nodeType":"FunctionDefinition","parameters":{"id":1061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1060,"mutability":"mutable","name":"newOwner","nameLocation":"2702:8:5","nodeType":"VariableDeclaration","scope":1077,"src":"2694:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1059,"name":"address","nodeType":"ElementaryTypeName","src":"2694:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2693:18:5"},"returnParameters":{"id":1062,"nodeType":"ParameterList","parameters":[],"src":"2729:0:5"},"scope":1083,"src":"2666:187:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1078,"nodeType":"StructuredDocumentation","src":"2859:254:5","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":1082,"mutability":"mutable","name":"__gap","nameLocation":"3138:5:5","nodeType":"VariableDeclaration","scope":1083,"src":"3118:25:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":1079,"name":"uint256","nodeType":"ElementaryTypeName","src":"3118:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1081,"length":{"hexValue":"3439","id":1080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3126:2:5","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3118:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":1084,"src":"708:2438:5","usedErrors":[]}],"src":"102:3045:5"},"id":5},"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[1753],"ContextUpgradeable":[1795],"ERC2771ContextUpgradeable":[1170],"Initializable":[1339]},"id":1171,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1085,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"109:23:6"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":1086,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1171,"sourceUnit":1796,"src":"134:41:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":1087,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1171,"sourceUnit":1340,"src":"176:42:6","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1089,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":1339,"src":"321:13:6"},"id":1090,"nodeType":"InheritanceSpecifier","src":"321:13:6"},{"baseName":{"id":1091,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1795,"src":"336:18:6"},"id":1092,"nodeType":"InheritanceSpecifier","src":"336:18:6"}],"canonicalName":"ERC2771ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1088,"nodeType":"StructuredDocumentation","src":"220:53:6","text":" @dev Context variant with ERC2771 support."},"fullyImplemented":true,"id":1170,"linearizedBaseContracts":[1170,1795,1339],"name":"ERC2771ContextUpgradeable","nameLocation":"292:25:6","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":1093,"nodeType":"StructuredDocumentation","src":"361:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":1095,"mutability":"immutable","name":"_trustedForwarder","nameLocation":"453:17:6","nodeType":"VariableDeclaration","scope":1170,"src":"427:43:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1094,"name":"address","nodeType":"ElementaryTypeName","src":"427:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"body":{"id":1105,"nodeType":"Block","src":"568:53:6","statements":[{"expression":{"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1101,"name":"_trustedForwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"578:17:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1102,"name":"trustedForwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1098,"src":"598:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"578:36:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1104,"nodeType":"ExpressionStatement","src":"578:36:6"}]},"documentation":{"id":1096,"nodeType":"StructuredDocumentation","src":"477:48:6","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":1106,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1098,"mutability":"mutable","name":"trustedForwarder","nameLocation":"550:16:6","nodeType":"VariableDeclaration","scope":1106,"src":"542:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1097,"name":"address","nodeType":"ElementaryTypeName","src":"542:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"541:26:6"},"returnParameters":{"id":1100,"nodeType":"ParameterList","parameters":[],"src":"568:0:6"},"scope":1170,"src":"530:91:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1117,"nodeType":"Block","src":"709:54:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1113,"name":"forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1108,"src":"726:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1114,"name":"_trustedForwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"739:17:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"726:30:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1112,"id":1116,"nodeType":"Return","src":"719:37:6"}]},"functionSelector":"572b6c05","id":1118,"implemented":true,"kind":"function","modifiers":[],"name":"isTrustedForwarder","nameLocation":"636:18:6","nodeType":"FunctionDefinition","parameters":{"id":1109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1108,"mutability":"mutable","name":"forwarder","nameLocation":"663:9:6","nodeType":"VariableDeclaration","scope":1118,"src":"655:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1107,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"654:19:6"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1118,"src":"703:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1110,"name":"bool","nodeType":"ElementaryTypeName","src":"703:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"702:6:6"},"scope":1170,"src":"627:136:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1780],"body":{"id":1136,"nodeType":"Block","src":"847:370:6","statements":[{"condition":{"arguments":[{"expression":{"id":1125,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"880:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"880:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1124,"name":"isTrustedForwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1118,"src":"861:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"861:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1134,"nodeType":"Block","src":"1161:50:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1130,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1182:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC2771ContextUpgradeable_$1170_$","typeString":"type(contract super ERC2771ContextUpgradeable)"}},"id":1131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_msgSender","nodeType":"MemberAccess","referencedDeclaration":1780,"src":"1182:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1182:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1123,"id":1133,"nodeType":"Return","src":"1175:25:6"}]},"id":1135,"nodeType":"IfStatement","src":"857:354:6","trueBody":{"id":1129,"nodeType":"Block","src":"893:262:6","statements":[{"AST":{"nodeType":"YulBlock","src":"1057:88:6","statements":[{"nodeType":"YulAssignment","src":"1075:56:6","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1089:2:6","type":"","value":"96"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1110:12:6"},"nodeType":"YulFunctionCall","src":"1110:14:6"},{"kind":"number","nodeType":"YulLiteral","src":"1126:2:6","type":"","value":"20"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1106:3:6"},"nodeType":"YulFunctionCall","src":"1106:23:6"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1093:12:6"},"nodeType":"YulFunctionCall","src":"1093:37:6"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1085:3:6"},"nodeType":"YulFunctionCall","src":"1085:46:6"},"variableNames":[{"name":"sender","nodeType":"YulIdentifier","src":"1075:6:6"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":1122,"isOffset":false,"isSlot":false,"src":"1075:6:6","valueSize":1}],"id":1128,"nodeType":"InlineAssembly","src":"1048:97:6"}]}}]},"id":1137,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"778:10:6","nodeType":"FunctionDefinition","overrides":{"id":1120,"nodeType":"OverrideSpecifier","overrides":[],"src":"813:8:6"},"parameters":{"id":1119,"nodeType":"ParameterList","parameters":[],"src":"788:2:6"},"returnParameters":{"id":1123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1122,"mutability":"mutable","name":"sender","nameLocation":"839:6:6","nodeType":"VariableDeclaration","scope":1137,"src":"831:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1121,"name":"address","nodeType":"ElementaryTypeName","src":"831:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"830:16:6"},"scope":1170,"src":"769:448:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1789],"body":{"id":1163,"nodeType":"Block","src":"1299:169:6","statements":[{"condition":{"arguments":[{"expression":{"id":1144,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1332:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1332:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1143,"name":"isTrustedForwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1118,"src":"1313:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1313:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1161,"nodeType":"Block","src":"1414:48:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1157,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1435:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC2771ContextUpgradeable_$1170_$","typeString":"type(contract super ERC2771ContextUpgradeable)"}},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_msgData","nodeType":"MemberAccess","referencedDeclaration":1789,"src":"1435:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_calldata_ptr_$","typeString":"function () view returns (bytes calldata)"}},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1435:16:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1142,"id":1160,"nodeType":"Return","src":"1428:23:6"}]},"id":1162,"nodeType":"IfStatement","src":"1309:153:6","trueBody":{"id":1156,"nodeType":"Block","src":"1345:63:6","statements":[{"expression":{"baseExpression":{"expression":{"id":1147,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1366:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"1366:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1376:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"1376:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1376:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":1152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:2:6","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1376:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1366:31:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"functionReturnParameters":1142,"id":1155,"nodeType":"Return","src":"1359:38:6"}]}}]},"id":1164,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"1232:8:6","nodeType":"FunctionDefinition","overrides":{"id":1139,"nodeType":"OverrideSpecifier","overrides":[],"src":"1265:8:6"},"parameters":{"id":1138,"nodeType":"ParameterList","parameters":[],"src":"1240:2:6"},"returnParameters":{"id":1142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1164,"src":"1283:14:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1140,"name":"bytes","nodeType":"ElementaryTypeName","src":"1283:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1282:16:6"},"scope":1170,"src":"1223:245:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1165,"nodeType":"StructuredDocumentation","src":"1474:254:6","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":1169,"mutability":"mutable","name":"__gap","nameLocation":"1753:5:6","nodeType":"VariableDeclaration","scope":1170,"src":"1733:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1166,"name":"uint256","nodeType":"ElementaryTypeName","src":"1733:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1168,"length":{"hexValue":"3530","id":1167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1741:2:6","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1733:11:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":1171,"src":"274:1487:6","usedErrors":[]}],"src":"109:1653:6"},"id":6},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[1753],"Initializable":[1339]},"id":1340,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1172,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:7"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":1173,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1340,"sourceUnit":1754,"src":"138:44:7","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1174,"nodeType":"StructuredDocumentation","src":"184:2209:7","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 ```solidity\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":1339,"linearizedBaseContracts":[1339],"name":"Initializable","nameLocation":"2412:13:7","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":1175,"nodeType":"StructuredDocumentation","src":"2432:109:7","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":1177,"mutability":"mutable","name":"_initialized","nameLocation":"2560:12:7","nodeType":"VariableDeclaration","scope":1339,"src":"2546:26:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1176,"name":"uint8","nodeType":"ElementaryTypeName","src":"2546:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":1178,"nodeType":"StructuredDocumentation","src":"2579:91:7","text":" @dev Indicates that the contract is in the process of being initialized."},"id":1180,"mutability":"mutable","name":"_initializing","nameLocation":"2688:13:7","nodeType":"VariableDeclaration","scope":1339,"src":"2675:26:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1179,"name":"bool","nodeType":"ElementaryTypeName","src":"2675:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":1181,"nodeType":"StructuredDocumentation","src":"2708:90:7","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":1185,"name":"Initialized","nameLocation":"2809:11:7","nodeType":"EventDefinition","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1183,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2827:7:7","nodeType":"VariableDeclaration","scope":1185,"src":"2821:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1182,"name":"uint8","nodeType":"ElementaryTypeName","src":"2821:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2820:15:7"},"src":"2803:33:7"},{"body":{"id":1240,"nodeType":"Block","src":"3269:483:7","statements":[{"assignments":[1189],"declarations":[{"constant":false,"id":1189,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3284:14:7","nodeType":"VariableDeclaration","scope":1240,"src":"3279:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1188,"name":"bool","nodeType":"ElementaryTypeName","src":"3279:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1192,"initialValue":{"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3301:14:7","subExpression":{"id":1190,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"3302:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3279:36:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1194,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"3347:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1195,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"3365:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":1196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3380:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3365:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3347:34:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1199,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3387:45:7","subExpression":{"arguments":[{"arguments":[{"id":1204,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3426:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$1339","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$1339","typeString":"contract Initializable"}],"id":1203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3418:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1202,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:7","typeDescriptions":{}}},"id":1205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3418:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1200,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1753,"src":"3388:18:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$1753_$","typeString":"type(library AddressUpgradeable)"}},"id":1201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":1441,"src":"3388:29:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3388:44:7","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":1210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1208,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"3436:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":1209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3452:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3436:17:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3387:66:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3386:68:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3346:108:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":1214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3468:48:7","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":1193,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3325:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3325:201:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1216,"nodeType":"ExpressionStatement","src":"3325:201:7"},{"expression":{"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1217,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"3536:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":1218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3536:16:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1220,"nodeType":"ExpressionStatement","src":"3536:16:7"},{"condition":{"id":1221,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"3566:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1227,"nodeType":"IfStatement","src":"3562:65:7","trueBody":{"id":1226,"nodeType":"Block","src":"3582:45:7","statements":[{"expression":{"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1222,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"3596:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3612:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3596:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1225,"nodeType":"ExpressionStatement","src":"3596:20:7"}]}},{"id":1228,"nodeType":"PlaceholderStatement","src":"3636:1:7"},{"condition":{"id":1229,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"3651:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1239,"nodeType":"IfStatement","src":"3647:99:7","trueBody":{"id":1238,"nodeType":"Block","src":"3667:79:7","statements":[{"expression":{"id":1232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1230,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"3681:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3697:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3681:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1233,"nodeType":"ExpressionStatement","src":"3681:21:7"},{"eventCall":{"arguments":[{"hexValue":"31","id":1235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3733:1:7","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":1234,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"3721:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3721:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1237,"nodeType":"EmitStatement","src":"3716:19:7"}]}}]},"documentation":{"id":1186,"nodeType":"StructuredDocumentation","src":"2842:399:7","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":1241,"name":"initializer","nameLocation":"3255:11:7","nodeType":"ModifierDefinition","parameters":{"id":1187,"nodeType":"ParameterList","parameters":[],"src":"3266:2:7"},"src":"3246:506:7","virtual":false,"visibility":"internal"},{"body":{"id":1273,"nodeType":"Block","src":"4863:255:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4881:14:7","subExpression":{"id":1247,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"4882:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1249,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"4899:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1250,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"4914:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4899:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4881:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":1253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4923:48:7","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":1246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4873:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4873:99:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1255,"nodeType":"ExpressionStatement","src":"4873:99:7"},{"expression":{"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1256,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"4982:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1257,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"4997:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4982:22:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1259,"nodeType":"ExpressionStatement","src":"4982:22:7"},{"expression":{"id":1262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1260,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"5014:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5030:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5014:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1263,"nodeType":"ExpressionStatement","src":"5014:20:7"},{"id":1264,"nodeType":"PlaceholderStatement","src":"5044:1:7"},{"expression":{"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1265,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"5055:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5071:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5055:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1268,"nodeType":"ExpressionStatement","src":"5055:21:7"},{"eventCall":{"arguments":[{"id":1270,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"5103:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1269,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"5091:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":1271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5091:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1272,"nodeType":"EmitStatement","src":"5086:25:7"}]},"documentation":{"id":1242,"nodeType":"StructuredDocumentation","src":"3758:1062:7","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":1274,"name":"reinitializer","nameLocation":"4834:13:7","nodeType":"ModifierDefinition","parameters":{"id":1245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"mutability":"mutable","name":"version","nameLocation":"4854:7:7","nodeType":"VariableDeclaration","scope":1274,"src":"4848:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1243,"name":"uint8","nodeType":"ElementaryTypeName","src":"4848:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4847:15:7"},"src":"4825:293:7","virtual":false,"visibility":"internal"},{"body":{"id":1283,"nodeType":"Block","src":"5356:97:7","statements":[{"expression":{"arguments":[{"id":1278,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"5374:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":1279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5389:45:7","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":1277,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5366:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5366:69:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1281,"nodeType":"ExpressionStatement","src":"5366:69:7"},{"id":1282,"nodeType":"PlaceholderStatement","src":"5445:1:7"}]},"documentation":{"id":1275,"nodeType":"StructuredDocumentation","src":"5124:199:7","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":1284,"name":"onlyInitializing","nameLocation":"5337:16:7","nodeType":"ModifierDefinition","parameters":{"id":1276,"nodeType":"ParameterList","parameters":[],"src":"5353:2:7"},"src":"5328:125:7","virtual":false,"visibility":"internal"},{"body":{"id":1319,"nodeType":"Block","src":"5988:231:7","statements":[{"expression":{"arguments":[{"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6006:14:7","subExpression":{"id":1289,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"6007:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":1291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6022:41:7","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":1288,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5998:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5998:66:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1293,"nodeType":"ExpressionStatement","src":"5998:66:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1294,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"6078:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":1297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6099:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1296,"name":"uint8","nodeType":"ElementaryTypeName","src":"6099:5:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":1295,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6094:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6094:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":1299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6094:15:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6078:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1318,"nodeType":"IfStatement","src":"6074:139:7","trueBody":{"id":1317,"nodeType":"Block","src":"6111:102:7","statements":[{"expression":{"id":1307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1301,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"6125:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":1304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6145:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1303,"name":"uint8","nodeType":"ElementaryTypeName","src":"6145:5:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":1302,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6140:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6140:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":1306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6140:15:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6125:30:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1308,"nodeType":"ExpressionStatement","src":"6125:30:7"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":1312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1311,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":1310,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6186:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6186:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":1314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6186:15:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1309,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1185,"src":"6174:11:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6174:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1316,"nodeType":"EmitStatement","src":"6169:33:7"}]}}]},"documentation":{"id":1285,"nodeType":"StructuredDocumentation","src":"5459:475:7","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":1320,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5948:20:7","nodeType":"FunctionDefinition","parameters":{"id":1286,"nodeType":"ParameterList","parameters":[],"src":"5968:2:7"},"returnParameters":{"id":1287,"nodeType":"ParameterList","parameters":[],"src":"5988:0:7"},"scope":1339,"src":"5939:280:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1328,"nodeType":"Block","src":"6393:36:7","statements":[{"expression":{"id":1326,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"6410:12:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":1325,"id":1327,"nodeType":"Return","src":"6403:19:7"}]},"documentation":{"id":1321,"nodeType":"StructuredDocumentation","src":"6225:99:7","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":1329,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6338:22:7","nodeType":"FunctionDefinition","parameters":{"id":1322,"nodeType":"ParameterList","parameters":[],"src":"6360:2:7"},"returnParameters":{"id":1325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1329,"src":"6386:5:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1323,"name":"uint8","nodeType":"ElementaryTypeName","src":"6386:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6385:7:7"},"scope":1339,"src":"6329:100:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1337,"nodeType":"Block","src":"6601:37:7","statements":[{"expression":{"id":1335,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"6618:13:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1334,"id":1336,"nodeType":"Return","src":"6611:20:7"}]},"documentation":{"id":1330,"nodeType":"StructuredDocumentation","src":"6435:105:7","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":1338,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6554:15:7","nodeType":"FunctionDefinition","parameters":{"id":1331,"nodeType":"ParameterList","parameters":[],"src":"6569:2:7"},"returnParameters":{"id":1334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1338,"src":"6595:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1332,"name":"bool","nodeType":"ElementaryTypeName","src":"6595:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6594:6:7"},"scope":1339,"src":"6545:93:7","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":1340,"src":"2394:4246:7","usedErrors":[]}],"src":"113:6528:7"},"id":7},"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[1753],"Initializable":[1339],"ReentrancyGuardUpgradeable":[1423]},"id":1424,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1341,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:8"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":1342,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1424,"sourceUnit":1340,"src":"136:42:8","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1344,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":1339,"src":"979:13:8"},"id":1345,"nodeType":"InheritanceSpecifier","src":"979:13:8"}],"canonicalName":"ReentrancyGuardUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1343,"nodeType":"StructuredDocumentation","src":"180:750:8","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":1423,"linearizedBaseContracts":[1423,1339],"name":"ReentrancyGuardUpgradeable","nameLocation":"949:26:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1348,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"1772:12:8","nodeType":"VariableDeclaration","scope":1423,"src":"1747:41:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1346,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":1347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1787:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":1351,"mutability":"constant","name":"_ENTERED","nameLocation":"1819:8:8","nodeType":"VariableDeclaration","scope":1423,"src":"1794:37:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1349,"name":"uint256","nodeType":"ElementaryTypeName","src":"1794:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":1350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1830:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":false,"id":1353,"mutability":"mutable","name":"_status","nameLocation":"1854:7:8","nodeType":"VariableDeclaration","scope":1423,"src":"1838:23:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1352,"name":"uint256","nodeType":"ElementaryTypeName","src":"1838:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":1361,"nodeType":"Block","src":"1928:51:8","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1358,"name":"__ReentrancyGuard_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1372,"src":"1938:32:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1938:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1360,"nodeType":"ExpressionStatement","src":"1938:34:8"}]},"id":1362,"implemented":true,"kind":"function","modifiers":[{"id":1356,"kind":"modifierInvocation","modifierName":{"id":1355,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":1284,"src":"1911:16:8"},"nodeType":"ModifierInvocation","src":"1911:16:8"}],"name":"__ReentrancyGuard_init","nameLocation":"1877:22:8","nodeType":"FunctionDefinition","parameters":{"id":1354,"nodeType":"ParameterList","parameters":[],"src":"1899:2:8"},"returnParameters":{"id":1357,"nodeType":"ParameterList","parameters":[],"src":"1928:0:8"},"scope":1423,"src":"1868:111:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1371,"nodeType":"Block","src":"2055:39:8","statements":[{"expression":{"id":1369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1367,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"2065:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1368,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"2075:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2065:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1370,"nodeType":"ExpressionStatement","src":"2065:22:8"}]},"id":1372,"implemented":true,"kind":"function","modifiers":[{"id":1365,"kind":"modifierInvocation","modifierName":{"id":1364,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":1284,"src":"2038:16:8"},"nodeType":"ModifierInvocation","src":"2038:16:8"}],"name":"__ReentrancyGuard_init_unchained","nameLocation":"1994:32:8","nodeType":"FunctionDefinition","parameters":{"id":1363,"nodeType":"ParameterList","parameters":[],"src":"2026:2:8"},"returnParameters":{"id":1366,"nodeType":"ParameterList","parameters":[],"src":"2055:0:8"},"scope":1423,"src":"1985:109:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1382,"nodeType":"Block","src":"2495:79:8","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1375,"name":"_nonReentrantBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1398,"src":"2505:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2505:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1377,"nodeType":"ExpressionStatement","src":"2505:21:8"},{"id":1378,"nodeType":"PlaceholderStatement","src":"2536:1:8"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1379,"name":"_nonReentrantAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"2547:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2547:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1381,"nodeType":"ExpressionStatement","src":"2547:20:8"}]},"documentation":{"id":1373,"nodeType":"StructuredDocumentation","src":"2100:366:8","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":1383,"name":"nonReentrant","nameLocation":"2480:12:8","nodeType":"ModifierDefinition","parameters":{"id":1374,"nodeType":"ParameterList","parameters":[],"src":"2492:2:8"},"src":"2471:103:8","virtual":false,"visibility":"internal"},{"body":{"id":1397,"nodeType":"Block","src":"2619:248:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1387,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"2712:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1388,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"2723:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2712:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","id":1390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2733:33:8","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":1386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2704:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2704:63:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1392,"nodeType":"ExpressionStatement","src":"2704:63:8"},{"expression":{"id":1395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1393,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"2842:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1394,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"2852:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2842:18:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1396,"nodeType":"ExpressionStatement","src":"2842:18:8"}]},"id":1398,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantBefore","nameLocation":"2589:19:8","nodeType":"FunctionDefinition","parameters":{"id":1384,"nodeType":"ParameterList","parameters":[],"src":"2608:2:8"},"returnParameters":{"id":1385,"nodeType":"ParameterList","parameters":[],"src":"2619:0:8"},"scope":1423,"src":"2580:287:8","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1405,"nodeType":"Block","src":"2911:171:8","statements":[{"expression":{"id":1403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1401,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"3053:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1402,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"3063:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3053:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1404,"nodeType":"ExpressionStatement","src":"3053:22:8"}]},"id":1406,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantAfter","nameLocation":"2882:18:8","nodeType":"FunctionDefinition","parameters":{"id":1399,"nodeType":"ParameterList","parameters":[],"src":"2900:2:8"},"returnParameters":{"id":1400,"nodeType":"ParameterList","parameters":[],"src":"2911:0:8"},"scope":1423,"src":"2873:209:8","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1416,"nodeType":"Block","src":"3325:43:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1412,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"3342:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1413,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1351,"src":"3353:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3342:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1411,"id":1415,"nodeType":"Return","src":"3335:26:8"}]},"documentation":{"id":1407,"nodeType":"StructuredDocumentation","src":"3088:168:8","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":1417,"implemented":true,"kind":"function","modifiers":[],"name":"_reentrancyGuardEntered","nameLocation":"3270:23:8","nodeType":"FunctionDefinition","parameters":{"id":1408,"nodeType":"ParameterList","parameters":[],"src":"3293:2:8"},"returnParameters":{"id":1411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1417,"src":"3319:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1409,"name":"bool","nodeType":"ElementaryTypeName","src":"3319:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3318:6:8"},"scope":1423,"src":"3261:107:8","stateMutability":"view","virtual":false,"visibility":"internal"},{"constant":false,"documentation":{"id":1418,"nodeType":"StructuredDocumentation","src":"3374:254:8","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":1422,"mutability":"mutable","name":"__gap","nameLocation":"3653:5:8","nodeType":"VariableDeclaration","scope":1423,"src":"3633:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":1419,"name":"uint256","nodeType":"ElementaryTypeName","src":"3633:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1421,"length":{"hexValue":"3439","id":1420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3641:2:8","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3633:11:8","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":1424,"src":"931:2730:8","usedErrors":[]}],"src":"112:3550:8"},"id":8},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[1753]},"id":1754,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1425,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":1426,"nodeType":"StructuredDocumentation","src":"126:67:9","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":1753,"linearizedBaseContracts":[1753],"name":"AddressUpgradeable","nameLocation":"202:18:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":1440,"nodeType":"Block","src":"1489:254:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1434,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1429,"src":"1713:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1713:12:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1713:19:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1713:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1433,"id":1439,"nodeType":"Return","src":"1706:30:9"}]},"documentation":{"id":1427,"nodeType":"StructuredDocumentation","src":"227:1191:9","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":1441,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1432:10:9","nodeType":"FunctionDefinition","parameters":{"id":1430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1429,"mutability":"mutable","name":"account","nameLocation":"1451:7:9","nodeType":"VariableDeclaration","scope":1441,"src":"1443:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1428,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1442:17:9"},"returnParameters":{"id":1433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1441,"src":"1483:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1431,"name":"bool","nodeType":"ElementaryTypeName","src":"1483:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1482:6:9"},"scope":1753,"src":"1423:320:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1474,"nodeType":"Block","src":"2729:241:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1452,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2755:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$1753","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$1753","typeString":"library AddressUpgradeable"}],"id":1451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1450,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:9","typeDescriptions":{}}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2747:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2747:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1455,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"2772:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2747:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":1457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2780:31:9","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":1449,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2739:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2739:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1459,"nodeType":"ExpressionStatement","src":"2739:73:9"},{"assignments":[1461,null],"declarations":[{"constant":false,"id":1461,"mutability":"mutable","name":"success","nameLocation":"2829:7:9","nodeType":"VariableDeclaration","scope":1474,"src":"2824:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1460,"name":"bool","nodeType":"ElementaryTypeName","src":"2824:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1468,"initialValue":{"arguments":[{"hexValue":"","id":1466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2872:2:9","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":1462,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"2842:9:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2842:14:9","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":1465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1464,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"2864:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2842:29:9","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":1467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2842:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2823:52:9"},{"expression":{"arguments":[{"id":1470,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"2893:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":1471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2902:60:9","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":1469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2885:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2885:78:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1473,"nodeType":"ExpressionStatement","src":"2885:78:9"}]},"documentation":{"id":1442,"nodeType":"StructuredDocumentation","src":"1749:904:9","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":1475,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2667:9:9","nodeType":"FunctionDefinition","parameters":{"id":1447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1444,"mutability":"mutable","name":"recipient","nameLocation":"2693:9:9","nodeType":"VariableDeclaration","scope":1475,"src":"2677:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1443,"name":"address","nodeType":"ElementaryTypeName","src":"2677:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1446,"mutability":"mutable","name":"amount","nameLocation":"2712:6:9","nodeType":"VariableDeclaration","scope":1475,"src":"2704:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1445,"name":"uint256","nodeType":"ElementaryTypeName","src":"2704:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:43:9"},"returnParameters":{"id":1448,"nodeType":"ParameterList","parameters":[],"src":"2729:0:9"},"scope":1753,"src":"2658:312:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1492,"nodeType":"Block","src":"3801:96:9","statements":[{"expression":{"arguments":[{"id":1486,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"3840:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1487,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1480,"src":"3848:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":1488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":1489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3857:32:9","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":1485,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1533,1577],"referencedDeclaration":1577,"src":"3818:21:9","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":1490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3818:72:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1484,"id":1491,"nodeType":"Return","src":"3811:79:9"}]},"documentation":{"id":1476,"nodeType":"StructuredDocumentation","src":"2976:731:9","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":1493,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3721:12:9","nodeType":"FunctionDefinition","parameters":{"id":1481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1478,"mutability":"mutable","name":"target","nameLocation":"3742:6:9","nodeType":"VariableDeclaration","scope":1493,"src":"3734:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1477,"name":"address","nodeType":"ElementaryTypeName","src":"3734:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1480,"mutability":"mutable","name":"data","nameLocation":"3763:4:9","nodeType":"VariableDeclaration","scope":1493,"src":"3750:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1479,"name":"bytes","nodeType":"ElementaryTypeName","src":"3750:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3733:35:9"},"returnParameters":{"id":1484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1493,"src":"3787:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1482,"name":"bytes","nodeType":"ElementaryTypeName","src":"3787:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3786:14:9"},"scope":1753,"src":"3712:185:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1512,"nodeType":"Block","src":"4266:76:9","statements":[{"expression":{"arguments":[{"id":1506,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1496,"src":"4305:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1507,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1498,"src":"4313:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":1508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4319:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":1509,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1500,"src":"4322:12:9","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":1505,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1533,1577],"referencedDeclaration":1577,"src":"4283:21:9","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":1510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4283:52:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1504,"id":1511,"nodeType":"Return","src":"4276:59:9"}]},"documentation":{"id":1494,"nodeType":"StructuredDocumentation","src":"3903:211:9","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":1513,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4128:12:9","nodeType":"FunctionDefinition","parameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1496,"mutability":"mutable","name":"target","nameLocation":"4158:6:9","nodeType":"VariableDeclaration","scope":1513,"src":"4150:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1495,"name":"address","nodeType":"ElementaryTypeName","src":"4150:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1498,"mutability":"mutable","name":"data","nameLocation":"4187:4:9","nodeType":"VariableDeclaration","scope":1513,"src":"4174:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1497,"name":"bytes","nodeType":"ElementaryTypeName","src":"4174:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1500,"mutability":"mutable","name":"errorMessage","nameLocation":"4215:12:9","nodeType":"VariableDeclaration","scope":1513,"src":"4201:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1499,"name":"string","nodeType":"ElementaryTypeName","src":"4201:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4140:93:9"},"returnParameters":{"id":1504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1513,"src":"4252:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1502,"name":"bytes","nodeType":"ElementaryTypeName","src":"4252:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4251:14:9"},"scope":1753,"src":"4119:223:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1532,"nodeType":"Block","src":"4817:111:9","statements":[{"expression":{"arguments":[{"id":1526,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"4856:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1527,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"4864:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1528,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"4870:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":1529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4877:43:9","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":1525,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[1533,1577],"referencedDeclaration":1577,"src":"4834:21:9","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":1530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4834:87:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1524,"id":1531,"nodeType":"Return","src":"4827:94:9"}]},"documentation":{"id":1514,"nodeType":"StructuredDocumentation","src":"4348:351:9","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":1533,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4713:21:9","nodeType":"FunctionDefinition","parameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"target","nameLocation":"4743:6:9","nodeType":"VariableDeclaration","scope":1533,"src":"4735:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1515,"name":"address","nodeType":"ElementaryTypeName","src":"4735:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1518,"mutability":"mutable","name":"data","nameLocation":"4764:4:9","nodeType":"VariableDeclaration","scope":1533,"src":"4751:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1517,"name":"bytes","nodeType":"ElementaryTypeName","src":"4751:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1520,"mutability":"mutable","name":"value","nameLocation":"4778:5:9","nodeType":"VariableDeclaration","scope":1533,"src":"4770:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1519,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:50:9"},"returnParameters":{"id":1524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1533,"src":"4803:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1522,"name":"bytes","nodeType":"ElementaryTypeName","src":"4803:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4802:14:9"},"scope":1753,"src":"4704:224:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1576,"nodeType":"Block","src":"5355:267:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1550,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5381:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$1753","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$1753","typeString":"library AddressUpgradeable"}],"id":1549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5373:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1548,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:9","typeDescriptions":{}}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5373:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5373:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"5398:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5373:30:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":1555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5405:40:9","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":1547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5365:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5365:81:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1557,"nodeType":"ExpressionStatement","src":"5365:81:9"},{"assignments":[1559,1561],"declarations":[{"constant":false,"id":1559,"mutability":"mutable","name":"success","nameLocation":"5462:7:9","nodeType":"VariableDeclaration","scope":1576,"src":"5457:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1558,"name":"bool","nodeType":"ElementaryTypeName","src":"5457:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1561,"mutability":"mutable","name":"returndata","nameLocation":"5484:10:9","nodeType":"VariableDeclaration","scope":1576,"src":"5471:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1560,"name":"bytes","nodeType":"ElementaryTypeName","src":"5471:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1568,"initialValue":{"arguments":[{"id":1566,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"5524:4:9","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":1562,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"5498:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5498:11:9","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":1565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1564,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"5517:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5498:25:9","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":1567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5498:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5456:73:9"},{"expression":{"arguments":[{"id":1570,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"5573:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1571,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"5581:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1572,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"5590:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1573,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"5602:12:9","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":1569,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1708,"src":"5546:26:9","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":1574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5546:69:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1546,"id":1575,"nodeType":"Return","src":"5539:76:9"}]},"documentation":{"id":1534,"nodeType":"StructuredDocumentation","src":"4934:237:9","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":1577,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5185:21:9","nodeType":"FunctionDefinition","parameters":{"id":1543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1536,"mutability":"mutable","name":"target","nameLocation":"5224:6:9","nodeType":"VariableDeclaration","scope":1577,"src":"5216:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1535,"name":"address","nodeType":"ElementaryTypeName","src":"5216:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1538,"mutability":"mutable","name":"data","nameLocation":"5253:4:9","nodeType":"VariableDeclaration","scope":1577,"src":"5240:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1537,"name":"bytes","nodeType":"ElementaryTypeName","src":"5240:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1540,"mutability":"mutable","name":"value","nameLocation":"5275:5:9","nodeType":"VariableDeclaration","scope":1577,"src":"5267:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint256","nodeType":"ElementaryTypeName","src":"5267:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1542,"mutability":"mutable","name":"errorMessage","nameLocation":"5304:12:9","nodeType":"VariableDeclaration","scope":1577,"src":"5290:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1541,"name":"string","nodeType":"ElementaryTypeName","src":"5290:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5206:116:9"},"returnParameters":{"id":1546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1577,"src":"5341:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1544,"name":"bytes","nodeType":"ElementaryTypeName","src":"5341:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5340:14:9"},"scope":1753,"src":"5176:446:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1593,"nodeType":"Block","src":"5899:97:9","statements":[{"expression":{"arguments":[{"id":1588,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1580,"src":"5935:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1589,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"5943:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5949:39:9","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":1587,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[1594,1623],"referencedDeclaration":1623,"src":"5916:18:9","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":1591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5916:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1586,"id":1592,"nodeType":"Return","src":"5909:80:9"}]},"documentation":{"id":1578,"nodeType":"StructuredDocumentation","src":"5628:166:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":1594,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5808:18:9","nodeType":"FunctionDefinition","parameters":{"id":1583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1580,"mutability":"mutable","name":"target","nameLocation":"5835:6:9","nodeType":"VariableDeclaration","scope":1594,"src":"5827:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1579,"name":"address","nodeType":"ElementaryTypeName","src":"5827:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1582,"mutability":"mutable","name":"data","nameLocation":"5856:4:9","nodeType":"VariableDeclaration","scope":1594,"src":"5843:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1581,"name":"bytes","nodeType":"ElementaryTypeName","src":"5843:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5826:35:9"},"returnParameters":{"id":1586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1594,"src":"5885:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1584,"name":"bytes","nodeType":"ElementaryTypeName","src":"5885:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5884:14:9"},"scope":1753,"src":"5799:197:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1622,"nodeType":"Block","src":"6338:168:9","statements":[{"assignments":[1607,1609],"declarations":[{"constant":false,"id":1607,"mutability":"mutable","name":"success","nameLocation":"6354:7:9","nodeType":"VariableDeclaration","scope":1622,"src":"6349:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1606,"name":"bool","nodeType":"ElementaryTypeName","src":"6349:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1609,"mutability":"mutable","name":"returndata","nameLocation":"6376:10:9","nodeType":"VariableDeclaration","scope":1622,"src":"6363:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1608,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1614,"initialValue":{"arguments":[{"id":1612,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1599,"src":"6408:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1610,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1597,"src":"6390:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6390:17:9","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":1613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6390:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6348:65:9"},{"expression":{"arguments":[{"id":1616,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1597,"src":"6457:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1617,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1607,"src":"6465:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1618,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1609,"src":"6474:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1619,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1601,"src":"6486:12:9","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":1615,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1708,"src":"6430:26:9","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":1620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6430:69:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1605,"id":1621,"nodeType":"Return","src":"6423:76:9"}]},"documentation":{"id":1595,"nodeType":"StructuredDocumentation","src":"6002:173:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":1623,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6189:18:9","nodeType":"FunctionDefinition","parameters":{"id":1602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1597,"mutability":"mutable","name":"target","nameLocation":"6225:6:9","nodeType":"VariableDeclaration","scope":1623,"src":"6217:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1596,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1599,"mutability":"mutable","name":"data","nameLocation":"6254:4:9","nodeType":"VariableDeclaration","scope":1623,"src":"6241:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1598,"name":"bytes","nodeType":"ElementaryTypeName","src":"6241:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1601,"mutability":"mutable","name":"errorMessage","nameLocation":"6282:12:9","nodeType":"VariableDeclaration","scope":1623,"src":"6268:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1600,"name":"string","nodeType":"ElementaryTypeName","src":"6268:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6207:93:9"},"returnParameters":{"id":1605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1623,"src":"6324:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1603,"name":"bytes","nodeType":"ElementaryTypeName","src":"6324:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6323:14:9"},"scope":1753,"src":"6180:326:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1639,"nodeType":"Block","src":"6782:101:9","statements":[{"expression":{"arguments":[{"id":1634,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1626,"src":"6820:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1635,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1628,"src":"6828:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":1636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6834:41:9","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":1633,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[1640,1669],"referencedDeclaration":1669,"src":"6799:20:9","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":1637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6799:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1632,"id":1638,"nodeType":"Return","src":"6792:84:9"}]},"documentation":{"id":1624,"nodeType":"StructuredDocumentation","src":"6512:168:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":1640,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6694:20:9","nodeType":"FunctionDefinition","parameters":{"id":1629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1626,"mutability":"mutable","name":"target","nameLocation":"6723:6:9","nodeType":"VariableDeclaration","scope":1640,"src":"6715:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1625,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1628,"mutability":"mutable","name":"data","nameLocation":"6744:4:9","nodeType":"VariableDeclaration","scope":1640,"src":"6731:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1627,"name":"bytes","nodeType":"ElementaryTypeName","src":"6731:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6714:35:9"},"returnParameters":{"id":1632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1640,"src":"6768:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1630,"name":"bytes","nodeType":"ElementaryTypeName","src":"6768:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6767:14:9"},"scope":1753,"src":"6685:198:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1668,"nodeType":"Block","src":"7224:170:9","statements":[{"assignments":[1653,1655],"declarations":[{"constant":false,"id":1653,"mutability":"mutable","name":"success","nameLocation":"7240:7:9","nodeType":"VariableDeclaration","scope":1668,"src":"7235:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1652,"name":"bool","nodeType":"ElementaryTypeName","src":"7235:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1655,"mutability":"mutable","name":"returndata","nameLocation":"7262:10:9","nodeType":"VariableDeclaration","scope":1668,"src":"7249:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1654,"name":"bytes","nodeType":"ElementaryTypeName","src":"7249:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1660,"initialValue":{"arguments":[{"id":1658,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"7296:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1656,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"7276:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"7276:19:9","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":1659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7276:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7234:67:9"},{"expression":{"arguments":[{"id":1662,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"7345:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1663,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1653,"src":"7353:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1664,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"7362:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1665,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"7374:12:9","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":1661,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1708,"src":"7318:26:9","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":1666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7318:69:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1651,"id":1667,"nodeType":"Return","src":"7311:76:9"}]},"documentation":{"id":1641,"nodeType":"StructuredDocumentation","src":"6889:175:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":1669,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7078:20:9","nodeType":"FunctionDefinition","parameters":{"id":1648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1643,"mutability":"mutable","name":"target","nameLocation":"7116:6:9","nodeType":"VariableDeclaration","scope":1669,"src":"7108:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1642,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1645,"mutability":"mutable","name":"data","nameLocation":"7145:4:9","nodeType":"VariableDeclaration","scope":1669,"src":"7132:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1644,"name":"bytes","nodeType":"ElementaryTypeName","src":"7132:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1647,"mutability":"mutable","name":"errorMessage","nameLocation":"7173:12:9","nodeType":"VariableDeclaration","scope":1669,"src":"7159:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1646,"name":"string","nodeType":"ElementaryTypeName","src":"7159:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7098:93:9"},"returnParameters":{"id":1651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1669,"src":"7210:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1649,"name":"bytes","nodeType":"ElementaryTypeName","src":"7210:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7209:14:9"},"scope":1753,"src":"7069:325:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1707,"nodeType":"Block","src":"7876:434:9","statements":[{"condition":{"id":1683,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"7890:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1705,"nodeType":"Block","src":"8246:58:9","statements":[{"expression":{"arguments":[{"id":1701,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"8268:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1702,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"8280:12:9","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":1700,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"8260:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":1703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8260:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1704,"nodeType":"ExpressionStatement","src":"8260:33:9"}]},"id":1706,"nodeType":"IfStatement","src":"7886:418:9","trueBody":{"id":1699,"nodeType":"Block","src":"7899:341:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1684,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"7917:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7917:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7938:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7917:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1696,"nodeType":"IfStatement","src":"7913:286:9","trueBody":{"id":1695,"nodeType":"Block","src":"7941:258:9","statements":[{"expression":{"arguments":[{"arguments":[{"id":1690,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1672,"src":"8143:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1689,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"8132:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8132:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":1692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8152:31:9","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":1688,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8124:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8124:60:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1694,"nodeType":"ExpressionStatement","src":"8124:60:9"}]}},{"expression":{"id":1697,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"8219:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1682,"id":1698,"nodeType":"Return","src":"8212:17:9"}]}}]},"documentation":{"id":1670,"nodeType":"StructuredDocumentation","src":"7400:277:9","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":1708,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7691:26:9","nodeType":"FunctionDefinition","parameters":{"id":1679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1672,"mutability":"mutable","name":"target","nameLocation":"7735:6:9","nodeType":"VariableDeclaration","scope":1708,"src":"7727:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1671,"name":"address","nodeType":"ElementaryTypeName","src":"7727:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1674,"mutability":"mutable","name":"success","nameLocation":"7756:7:9","nodeType":"VariableDeclaration","scope":1708,"src":"7751:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1673,"name":"bool","nodeType":"ElementaryTypeName","src":"7751:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1676,"mutability":"mutable","name":"returndata","nameLocation":"7786:10:9","nodeType":"VariableDeclaration","scope":1708,"src":"7773:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1675,"name":"bytes","nodeType":"ElementaryTypeName","src":"7773:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1678,"mutability":"mutable","name":"errorMessage","nameLocation":"7820:12:9","nodeType":"VariableDeclaration","scope":1708,"src":"7806:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1677,"name":"string","nodeType":"ElementaryTypeName","src":"7806:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7717:121:9"},"returnParameters":{"id":1682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1681,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1708,"src":"7862:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1680,"name":"bytes","nodeType":"ElementaryTypeName","src":"7862:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7861:14:9"},"scope":1753,"src":"7682:628:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1731,"nodeType":"Block","src":"8691:135:9","statements":[{"condition":{"id":1720,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1711,"src":"8705:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1729,"nodeType":"Block","src":"8762:58:9","statements":[{"expression":{"arguments":[{"id":1725,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"8784:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1726,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"8796:12:9","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":1724,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"8776:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8776:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1728,"nodeType":"ExpressionStatement","src":"8776:33:9"}]},"id":1730,"nodeType":"IfStatement","src":"8701:119:9","trueBody":{"id":1723,"nodeType":"Block","src":"8714:42:9","statements":[{"expression":{"id":1721,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"8735:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1719,"id":1722,"nodeType":"Return","src":"8728:17:9"}]}}]},"documentation":{"id":1709,"nodeType":"StructuredDocumentation","src":"8316:210:9","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":1732,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8540:16:9","nodeType":"FunctionDefinition","parameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1711,"mutability":"mutable","name":"success","nameLocation":"8571:7:9","nodeType":"VariableDeclaration","scope":1732,"src":"8566:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1710,"name":"bool","nodeType":"ElementaryTypeName","src":"8566:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1713,"mutability":"mutable","name":"returndata","nameLocation":"8601:10:9","nodeType":"VariableDeclaration","scope":1732,"src":"8588:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1712,"name":"bytes","nodeType":"ElementaryTypeName","src":"8588:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1715,"mutability":"mutable","name":"errorMessage","nameLocation":"8635:12:9","nodeType":"VariableDeclaration","scope":1732,"src":"8621:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1714,"name":"string","nodeType":"ElementaryTypeName","src":"8621:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8556:97:9"},"returnParameters":{"id":1719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1732,"src":"8677:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1717,"name":"bytes","nodeType":"ElementaryTypeName","src":"8677:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8676:14:9"},"scope":1753,"src":"8531:295:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1751,"nodeType":"Block","src":"8915:457:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1739,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"8991:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8991:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9011:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8991:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1749,"nodeType":"Block","src":"9321:45:9","statements":[{"expression":{"arguments":[{"id":1746,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1736,"src":"9342:12:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1745,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9335:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9335:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1748,"nodeType":"ExpressionStatement","src":"9335:20:9"}]},"id":1750,"nodeType":"IfStatement","src":"8987:379:9","trueBody":{"id":1744,"nodeType":"Block","src":"9014:301:9","statements":[{"AST":{"nodeType":"YulBlock","src":"9172:133:9","statements":[{"nodeType":"YulVariableDeclaration","src":"9190:40:9","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9219:10:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9213:5:9"},"nodeType":"YulFunctionCall","src":"9213:17:9"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9194:15:9","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9258:2:9","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9262:10:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9254:3:9"},"nodeType":"YulFunctionCall","src":"9254:19:9"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9275:15:9"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9247:6:9"},"nodeType":"YulFunctionCall","src":"9247:44:9"},"nodeType":"YulExpressionStatement","src":"9247:44:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":1734,"isOffset":false,"isSlot":false,"src":"9219:10:9","valueSize":1},{"declaration":1734,"isOffset":false,"isSlot":false,"src":"9262:10:9","valueSize":1}],"id":1743,"nodeType":"InlineAssembly","src":"9163:142:9"}]}}]},"id":1752,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8841:7:9","nodeType":"FunctionDefinition","parameters":{"id":1737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1734,"mutability":"mutable","name":"returndata","nameLocation":"8862:10:9","nodeType":"VariableDeclaration","scope":1752,"src":"8849:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1733,"name":"bytes","nodeType":"ElementaryTypeName","src":"8849:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1736,"mutability":"mutable","name":"errorMessage","nameLocation":"8888:12:9","nodeType":"VariableDeclaration","scope":1752,"src":"8874:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1735,"name":"string","nodeType":"ElementaryTypeName","src":"8874:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8848:53:9"},"returnParameters":{"id":1738,"nodeType":"ParameterList","parameters":[],"src":"8915:0:9"},"scope":1753,"src":"8832:540:9","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1754,"src":"194:9180:9","usedErrors":[]}],"src":"101:9274:9"},"id":9},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[1753],"ContextUpgradeable":[1795],"Initializable":[1339]},"id":1796,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1755,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:10"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":1756,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1796,"sourceUnit":1340,"src":"110:42:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1758,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":1339,"src":"691:13:10"},"id":1759,"nodeType":"InheritanceSpecifier","src":"691:13:10"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1757,"nodeType":"StructuredDocumentation","src":"154:496:10","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":1795,"linearizedBaseContracts":[1795,1339],"name":"ContextUpgradeable","nameLocation":"669:18:10","nodeType":"ContractDefinition","nodes":[{"body":{"id":1764,"nodeType":"Block","src":"763:7:10","statements":[]},"id":1765,"implemented":true,"kind":"function","modifiers":[{"id":1762,"kind":"modifierInvocation","modifierName":{"id":1761,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":1284,"src":"746:16:10"},"nodeType":"ModifierInvocation","src":"746:16:10"}],"name":"__Context_init","nameLocation":"720:14:10","nodeType":"FunctionDefinition","parameters":{"id":1760,"nodeType":"ParameterList","parameters":[],"src":"734:2:10"},"returnParameters":{"id":1763,"nodeType":"ParameterList","parameters":[],"src":"763:0:10"},"scope":1795,"src":"711:59:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1770,"nodeType":"Block","src":"838:7:10","statements":[]},"id":1771,"implemented":true,"kind":"function","modifiers":[{"id":1768,"kind":"modifierInvocation","modifierName":{"id":1767,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":1284,"src":"821:16:10"},"nodeType":"ModifierInvocation","src":"821:16:10"}],"name":"__Context_init_unchained","nameLocation":"785:24:10","nodeType":"FunctionDefinition","parameters":{"id":1766,"nodeType":"ParameterList","parameters":[],"src":"809:2:10"},"returnParameters":{"id":1769,"nodeType":"ParameterList","parameters":[],"src":"838:0:10"},"scope":1795,"src":"776:69:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1779,"nodeType":"Block","src":"912:34:10","statements":[{"expression":{"expression":{"id":1776,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"929:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"929:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1775,"id":1778,"nodeType":"Return","src":"922:17:10"}]},"id":1780,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"859:10:10","nodeType":"FunctionDefinition","parameters":{"id":1772,"nodeType":"ParameterList","parameters":[],"src":"869:2:10"},"returnParameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1780,"src":"903:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1773,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"902:9:10"},"scope":1795,"src":"850:96:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1788,"nodeType":"Block","src":"1019:32:10","statements":[{"expression":{"expression":{"id":1785,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1036:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"1036:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1784,"id":1787,"nodeType":"Return","src":"1029:15:10"}]},"id":1789,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"961:8:10","nodeType":"FunctionDefinition","parameters":{"id":1781,"nodeType":"ParameterList","parameters":[],"src":"969:2:10"},"returnParameters":{"id":1784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1789,"src":"1003:14:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1782,"name":"bytes","nodeType":"ElementaryTypeName","src":"1003:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1002:16:10"},"scope":1795,"src":"952:99:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1790,"nodeType":"StructuredDocumentation","src":"1057:254:10","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":1794,"mutability":"mutable","name":"__gap","nameLocation":"1336:5:10","nodeType":"VariableDeclaration","scope":1795,"src":"1316:25:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1791,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1793,"length":{"hexValue":"3530","id":1792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:2:10","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1316:11:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":1796,"src":"651:693:10","usedErrors":[]}],"src":"86:1259:10"},"id":10},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[2111],"Context":[2843],"ERC165":[3995],"IAccessControl":[2184],"IERC165":[4007],"Math":[4873],"SignedMath":[4978],"Strings":[3398]},"id":2112,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1797,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:11"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":1798,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2112,"sourceUnit":2185,"src":"133:30:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":1799,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2112,"sourceUnit":2844,"src":"164:30:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":1800,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2112,"sourceUnit":3399,"src":"195:30:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":1801,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2112,"sourceUnit":3996,"src":"226:43:11","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1803,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"1967:7:11"},"id":1804,"nodeType":"InheritanceSpecifier","src":"1967:7:11"},{"baseName":{"id":1805,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":2184,"src":"1976:14:11"},"id":1806,"nodeType":"InheritanceSpecifier","src":"1976:14:11"},{"baseName":{"id":1807,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":3995,"src":"1992:6:11"},"id":1808,"nodeType":"InheritanceSpecifier","src":"1992:6:11"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":1802,"nodeType":"StructuredDocumentation","src":"271:1660:11","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":2111,"linearizedBaseContracts":[2111,3995,4007,2184,2843],"name":"AccessControl","nameLocation":"1950:13:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":1815,"members":[{"constant":false,"id":1812,"mutability":"mutable","name":"members","nameLocation":"2056:7:11","nodeType":"VariableDeclaration","scope":1815,"src":"2031:32:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":1811,"keyType":{"id":1809,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2031:24:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":1810,"name":"bool","nodeType":"ElementaryTypeName","src":"2050:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":1814,"mutability":"mutable","name":"adminRole","nameLocation":"2081:9:11","nodeType":"VariableDeclaration","scope":1815,"src":"2073:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2073:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2012:8:11","nodeType":"StructDefinition","scope":2111,"src":"2005:92:11","visibility":"public"},{"constant":false,"id":1820,"mutability":"mutable","name":"_roles","nameLocation":"2140:6:11","nodeType":"VariableDeclaration","scope":2111,"src":"2103:43:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1815_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":1819,"keyType":{"id":1816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2111:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2103:28:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1815_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueType":{"id":1818,"nodeType":"UserDefinedTypeName","pathNode":{"id":1817,"name":"RoleData","nodeType":"IdentifierPath","referencedDeclaration":1815,"src":"2122:8:11"},"referencedDeclaration":1815,"src":"2122:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1815_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":1823,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2177:18:11","nodeType":"VariableDeclaration","scope":2111,"src":"2153:49:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2153:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":1822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2198:4:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":1833,"nodeType":"Block","src":"2621:44:11","statements":[{"expression":{"arguments":[{"id":1829,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"2642:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1828,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[1888,1927],"referencedDeclaration":1888,"src":"2631:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":1830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2631:16:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1831,"nodeType":"ExpressionStatement","src":"2631:16:11"},{"id":1832,"nodeType":"PlaceholderStatement","src":"2657:1:11"}]},"documentation":{"id":1824,"nodeType":"StructuredDocumentation","src":"2209:375:11","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":1834,"name":"onlyRole","nameLocation":"2598:8:11","nodeType":"ModifierDefinition","parameters":{"id":1827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"role","nameLocation":"2615:4:11","nodeType":"VariableDeclaration","scope":1834,"src":"2607:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2607:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2606:14:11"},"src":"2589:76:11","virtual":false,"visibility":"internal"},{"baseFunctions":[3994],"body":{"id":1855,"nodeType":"Block","src":"2823:111:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1843,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"2840:11:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1845,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"2860:14:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$2184_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$2184_$","typeString":"type(contract IAccessControl)"}],"id":1844,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2855:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2855:20:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$2184","typeString":"type(contract IAccessControl)"}},"id":1847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2855:32:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2840:47:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1851,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"2915:11:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1849,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2891:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$2111_$","typeString":"type(contract super AccessControl)"}},"id":1850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3994,"src":"2891:23:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2891:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2840:87:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1842,"id":1854,"nodeType":"Return","src":"2833:94:11"}]},"documentation":{"id":1835,"nodeType":"StructuredDocumentation","src":"2671:56:11","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1856,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2741:17:11","nodeType":"FunctionDefinition","overrides":{"id":1839,"nodeType":"OverrideSpecifier","overrides":[],"src":"2799:8:11"},"parameters":{"id":1838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1837,"mutability":"mutable","name":"interfaceId","nameLocation":"2766:11:11","nodeType":"VariableDeclaration","scope":1856,"src":"2759:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1836,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2759:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2758:20:11"},"returnParameters":{"id":1842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1856,"src":"2817:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1840,"name":"bool","nodeType":"ElementaryTypeName","src":"2817:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2816:6:11"},"scope":2111,"src":"2732:202:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2151],"body":{"id":1874,"nodeType":"Block","src":"3113:53:11","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":1867,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"3130:6:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1815_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":1869,"indexExpression":{"id":1868,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1859,"src":"3137:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3130:12:11","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1815_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":1870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":1812,"src":"3130:20:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1872,"indexExpression":{"id":1871,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1861,"src":"3151:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3130:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1866,"id":1873,"nodeType":"Return","src":"3123:36:11"}]},"documentation":{"id":1857,"nodeType":"StructuredDocumentation","src":"2940:76:11","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":1875,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"3030:7:11","nodeType":"FunctionDefinition","overrides":{"id":1863,"nodeType":"OverrideSpecifier","overrides":[],"src":"3089:8:11"},"parameters":{"id":1862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1859,"mutability":"mutable","name":"role","nameLocation":"3046:4:11","nodeType":"VariableDeclaration","scope":1875,"src":"3038:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3038:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1861,"mutability":"mutable","name":"account","nameLocation":"3060:7:11","nodeType":"VariableDeclaration","scope":1875,"src":"3052:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1860,"name":"address","nodeType":"ElementaryTypeName","src":"3052:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3037:31:11"},"returnParameters":{"id":1866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1875,"src":"3107:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1864,"name":"bool","nodeType":"ElementaryTypeName","src":"3107:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3106:6:11"},"scope":2111,"src":"3021:145:11","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1887,"nodeType":"Block","src":"3516:47:11","statements":[{"expression":{"arguments":[{"id":1882,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1878,"src":"3537:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1883,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"3543:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3543:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1881,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[1888,1927],"referencedDeclaration":1927,"src":"3526:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3526:30:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1886,"nodeType":"ExpressionStatement","src":"3526:30:11"}]},"documentation":{"id":1876,"nodeType":"StructuredDocumentation","src":"3172:283:11","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":1888,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3469:10:11","nodeType":"FunctionDefinition","parameters":{"id":1879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1878,"mutability":"mutable","name":"role","nameLocation":"3488:4:11","nodeType":"VariableDeclaration","scope":1888,"src":"3480:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3480:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3479:14:11"},"returnParameters":{"id":1880,"nodeType":"ParameterList","parameters":[],"src":"3516:0:11"},"scope":2111,"src":"3460:103:11","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1926,"nodeType":"Block","src":"3917:406:11","statements":[{"condition":{"id":1900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3931:23:11","subExpression":{"arguments":[{"id":1897,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"3940:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1898,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1893,"src":"3946:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1896,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"3932:7:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3932:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1925,"nodeType":"IfStatement","src":"3927:390:11","trueBody":{"id":1924,"nodeType":"Block","src":"3956:361:11","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":1906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4064:25:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":1909,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1893,"src":"4135:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1907,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"4115:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$3398_$","typeString":"type(library Strings)"}},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":3372,"src":"4115:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4115:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":1911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4169:19:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":1916,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"4242:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4234:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1914,"name":"uint256","nodeType":"ElementaryTypeName","src":"4234:7:11","typeDescriptions":{}}},"id":1917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4234:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":1918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4249:2:11","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":1912,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"4214:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$3398_$","typeString":"type(library Strings)"}},"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":3352,"src":"4214:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:38:11","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":1904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4022:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4022:16:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4022:252:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3994:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1902,"name":"string","nodeType":"ElementaryTypeName","src":"3994:6:11","typeDescriptions":{}}},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3994:298:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1901,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3970:6:11","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3970:336:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1923,"nodeType":"ExpressionStatement","src":"3970:336:11"}]}}]},"documentation":{"id":1889,"nodeType":"StructuredDocumentation","src":"3569:270:11","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":1927,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3853:10:11","nodeType":"FunctionDefinition","parameters":{"id":1894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1891,"mutability":"mutable","name":"role","nameLocation":"3872:4:11","nodeType":"VariableDeclaration","scope":1927,"src":"3864:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3864:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1893,"mutability":"mutable","name":"account","nameLocation":"3886:7:11","nodeType":"VariableDeclaration","scope":1927,"src":"3878:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1892,"name":"address","nodeType":"ElementaryTypeName","src":"3878:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3863:31:11"},"returnParameters":{"id":1895,"nodeType":"ParameterList","parameters":[],"src":"3917:0:11"},"scope":2111,"src":"3844:479:11","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2159],"body":{"id":1941,"nodeType":"Block","src":"4587:46:11","statements":[{"expression":{"expression":{"baseExpression":{"id":1936,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"4604:6:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1815_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":1938,"indexExpression":{"id":1937,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"4611:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4604:12:11","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1815_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":1939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":1814,"src":"4604:22:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1935,"id":1940,"nodeType":"Return","src":"4597:29:11"}]},"documentation":{"id":1928,"nodeType":"StructuredDocumentation","src":"4329:170:11","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":1942,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4513:12:11","nodeType":"FunctionDefinition","overrides":{"id":1932,"nodeType":"OverrideSpecifier","overrides":[],"src":"4560:8:11"},"parameters":{"id":1931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1930,"mutability":"mutable","name":"role","nameLocation":"4534:4:11","nodeType":"VariableDeclaration","scope":1942,"src":"4526:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4526:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4525:14:11"},"returnParameters":{"id":1935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1942,"src":"4578:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4578:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4577:9:11"},"scope":2111,"src":"4504:129:11","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2167],"body":{"id":1961,"nodeType":"Block","src":"5032:42:11","statements":[{"expression":{"arguments":[{"id":1957,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5053:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1958,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1947,"src":"5059:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1956,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"5042:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5042:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1960,"nodeType":"ExpressionStatement","src":"5042:25:11"}]},"documentation":{"id":1943,"nodeType":"StructuredDocumentation","src":"4639:285:11","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":1962,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":1952,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5025:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1951,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"5012:12:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5012:18:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1954,"kind":"modifierInvocation","modifierName":{"id":1950,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":1834,"src":"5003:8:11"},"nodeType":"ModifierInvocation","src":"5003:28:11"}],"name":"grantRole","nameLocation":"4938:9:11","nodeType":"FunctionDefinition","overrides":{"id":1949,"nodeType":"OverrideSpecifier","overrides":[],"src":"4994:8:11"},"parameters":{"id":1948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1945,"mutability":"mutable","name":"role","nameLocation":"4956:4:11","nodeType":"VariableDeclaration","scope":1962,"src":"4948:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4948:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1947,"mutability":"mutable","name":"account","nameLocation":"4970:7:11","nodeType":"VariableDeclaration","scope":1962,"src":"4962:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1946,"name":"address","nodeType":"ElementaryTypeName","src":"4962:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4947:31:11"},"returnParameters":{"id":1955,"nodeType":"ParameterList","parameters":[],"src":"5032:0:11"},"scope":2111,"src":"4929:145:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2175],"body":{"id":1981,"nodeType":"Block","src":"5458:43:11","statements":[{"expression":{"arguments":[{"id":1977,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"5480:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1978,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"5486:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1976,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"5468:11:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5468:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1980,"nodeType":"ExpressionStatement","src":"5468:26:11"}]},"documentation":{"id":1963,"nodeType":"StructuredDocumentation","src":"5080:269:11","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":1982,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":1972,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"5451:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1971,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"5438:12:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5438:18:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1974,"kind":"modifierInvocation","modifierName":{"id":1970,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":1834,"src":"5429:8:11"},"nodeType":"ModifierInvocation","src":"5429:28:11"}],"name":"revokeRole","nameLocation":"5363:10:11","nodeType":"FunctionDefinition","overrides":{"id":1969,"nodeType":"OverrideSpecifier","overrides":[],"src":"5420:8:11"},"parameters":{"id":1968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1965,"mutability":"mutable","name":"role","nameLocation":"5382:4:11","nodeType":"VariableDeclaration","scope":1982,"src":"5374:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5374:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1967,"mutability":"mutable","name":"account","nameLocation":"5396:7:11","nodeType":"VariableDeclaration","scope":1982,"src":"5388:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1966,"name":"address","nodeType":"ElementaryTypeName","src":"5388:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5373:31:11"},"returnParameters":{"id":1975,"nodeType":"ParameterList","parameters":[],"src":"5458:0:11"},"scope":2111,"src":"5354:147:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2183],"body":{"id":2004,"nodeType":"Block","src":"6115:137:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1992,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"6133:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1993,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"6144:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6144:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6133:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":1996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6158:49:11","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":1991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6125:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6125:83:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1998,"nodeType":"ExpressionStatement","src":"6125:83:11"},{"expression":{"arguments":[{"id":2000,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1985,"src":"6231:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2001,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"6237:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1999,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"6219:11:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6219:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2003,"nodeType":"ExpressionStatement","src":"6219:26:11"}]},"documentation":{"id":1983,"nodeType":"StructuredDocumentation","src":"5507:526:11","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":2005,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"6047:12:11","nodeType":"FunctionDefinition","overrides":{"id":1989,"nodeType":"OverrideSpecifier","overrides":[],"src":"6106:8:11"},"parameters":{"id":1988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1985,"mutability":"mutable","name":"role","nameLocation":"6068:4:11","nodeType":"VariableDeclaration","scope":2005,"src":"6060:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6060:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1987,"mutability":"mutable","name":"account","nameLocation":"6082:7:11","nodeType":"VariableDeclaration","scope":2005,"src":"6074:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1986,"name":"address","nodeType":"ElementaryTypeName","src":"6074:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6059:31:11"},"returnParameters":{"id":1990,"nodeType":"ParameterList","parameters":[],"src":"6115:0:11"},"scope":2111,"src":"6038:214:11","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2018,"nodeType":"Block","src":"7005:42:11","statements":[{"expression":{"arguments":[{"id":2014,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2008,"src":"7026:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2015,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2010,"src":"7032:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2013,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"7015:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7015:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2017,"nodeType":"ExpressionStatement","src":"7015:25:11"}]},"documentation":{"id":2006,"nodeType":"StructuredDocumentation","src":"6258:674:11","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":2019,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6946:10:11","nodeType":"FunctionDefinition","parameters":{"id":2011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2008,"mutability":"mutable","name":"role","nameLocation":"6965:4:11","nodeType":"VariableDeclaration","scope":2019,"src":"6957:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6957:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2010,"mutability":"mutable","name":"account","nameLocation":"6979:7:11","nodeType":"VariableDeclaration","scope":2019,"src":"6971:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2009,"name":"address","nodeType":"ElementaryTypeName","src":"6971:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6956:31:11"},"returnParameters":{"id":2012,"nodeType":"ParameterList","parameters":[],"src":"7005:0:11"},"scope":2111,"src":"6937:110:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2046,"nodeType":"Block","src":"7245:174:11","statements":[{"assignments":[2028],"declarations":[{"constant":false,"id":2028,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7263:17:11","nodeType":"VariableDeclaration","scope":2046,"src":"7255:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7255:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2032,"initialValue":{"arguments":[{"id":2030,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7296:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2029,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"7283:12:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7283:18:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7255:46:11"},{"expression":{"id":2038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":2033,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"7311:6:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1815_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":2035,"indexExpression":{"id":2034,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7318:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7311:12:11","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1815_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":2036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":1814,"src":"7311:22:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2037,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2024,"src":"7336:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7311:34:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2039,"nodeType":"ExpressionStatement","src":"7311:34:11"},{"eventCall":{"arguments":[{"id":2041,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7377:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2042,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2028,"src":"7383:17:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2043,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2024,"src":"7402:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2040,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2123,"src":"7360:16:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":2044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7360:52:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2045,"nodeType":"EmitStatement","src":"7355:57:11"}]},"documentation":{"id":2020,"nodeType":"StructuredDocumentation","src":"7053:114:11","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":2047,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7181:13:11","nodeType":"FunctionDefinition","parameters":{"id":2025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2022,"mutability":"mutable","name":"role","nameLocation":"7203:4:11","nodeType":"VariableDeclaration","scope":2047,"src":"7195:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7195:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2024,"mutability":"mutable","name":"adminRole","nameLocation":"7217:9:11","nodeType":"VariableDeclaration","scope":2047,"src":"7209:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2023,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7209:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7194:33:11"},"returnParameters":{"id":2026,"nodeType":"ParameterList","parameters":[],"src":"7245:0:11"},"scope":2111,"src":"7172:247:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2078,"nodeType":"Block","src":"7655:165:11","statements":[{"condition":{"id":2059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7669:23:11","subExpression":{"arguments":[{"id":2056,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2050,"src":"7678:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2057,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2052,"src":"7684:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2055,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"7670:7:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7670:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2077,"nodeType":"IfStatement","src":"7665:149:11","trueBody":{"id":2076,"nodeType":"Block","src":"7694:120:11","statements":[{"expression":{"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":2060,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"7708:6:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1815_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":2062,"indexExpression":{"id":2061,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2050,"src":"7715:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7708:12:11","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1815_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":2063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":1812,"src":"7708:20:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2065,"indexExpression":{"id":2064,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2052,"src":"7729:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7708:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7740:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7708:36:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2068,"nodeType":"ExpressionStatement","src":"7708:36:11"},{"eventCall":{"arguments":[{"id":2070,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2050,"src":"7775:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2071,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2052,"src":"7781:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2072,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"7790:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7790:12:11","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":2069,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"7763:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":2074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7763:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2075,"nodeType":"EmitStatement","src":"7758:45:11"}]}}]},"documentation":{"id":2048,"nodeType":"StructuredDocumentation","src":"7425:157:11","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":2079,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7596:10:11","nodeType":"FunctionDefinition","parameters":{"id":2053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2050,"mutability":"mutable","name":"role","nameLocation":"7615:4:11","nodeType":"VariableDeclaration","scope":2079,"src":"7607:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7607:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2052,"mutability":"mutable","name":"account","nameLocation":"7629:7:11","nodeType":"VariableDeclaration","scope":2079,"src":"7621:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2051,"name":"address","nodeType":"ElementaryTypeName","src":"7621:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7606:31:11"},"returnParameters":{"id":2054,"nodeType":"ParameterList","parameters":[],"src":"7655:0:11"},"scope":2111,"src":"7587:233:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2109,"nodeType":"Block","src":"8060:165:11","statements":[{"condition":{"arguments":[{"id":2088,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"8082:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2089,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"8088:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2087,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"8074:7:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8074:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2108,"nodeType":"IfStatement","src":"8070:149:11","trueBody":{"id":2107,"nodeType":"Block","src":"8098:121:11","statements":[{"expression":{"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":2091,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"8112:6:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1815_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":2093,"indexExpression":{"id":2092,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"8119:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8112:12:11","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1815_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":2094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":1812,"src":"8112:20:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2096,"indexExpression":{"id":2095,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"8133:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8112:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8144:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8112:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2099,"nodeType":"ExpressionStatement","src":"8112:37:11"},{"eventCall":{"arguments":[{"id":2101,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"8180:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2102,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2084,"src":"8186:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2103,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"8195:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8195:12:11","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":2100,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"8168:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8168:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2106,"nodeType":"EmitStatement","src":"8163:45:11"}]}}]},"documentation":{"id":2080,"nodeType":"StructuredDocumentation","src":"7826:160:11","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":2110,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"8000:11:11","nodeType":"FunctionDefinition","parameters":{"id":2085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2082,"mutability":"mutable","name":"role","nameLocation":"8020:4:11","nodeType":"VariableDeclaration","scope":2110,"src":"8012:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8012:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2084,"mutability":"mutable","name":"account","nameLocation":"8034:7:11","nodeType":"VariableDeclaration","scope":2110,"src":"8026:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2083,"name":"address","nodeType":"ElementaryTypeName","src":"8026:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8011:31:11"},"returnParameters":{"id":2086,"nodeType":"ParameterList","parameters":[],"src":"8060:0:11"},"scope":2111,"src":"7991:234:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2112,"src":"1932:6295:11","usedErrors":[]}],"src":"108:8120:11"},"id":11},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[2184]},"id":2185,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2113,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":2114,"nodeType":"StructuredDocumentation","src":"119:89:12","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":2184,"linearizedBaseContracts":[2184],"name":"IAccessControl","nameLocation":"219:14:12","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":2115,"nodeType":"StructuredDocumentation","src":"240:292:12","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":2123,"name":"RoleAdminChanged","nameLocation":"543:16:12","nodeType":"EventDefinition","parameters":{"id":2122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2117,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:12","nodeType":"VariableDeclaration","scope":2123,"src":"560:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2119,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:12","nodeType":"VariableDeclaration","scope":2123,"src":"582:33:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2121,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:12","nodeType":"VariableDeclaration","scope":2123,"src":"617:28:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:12"},"src":"537:110:12"},{"anonymous":false,"documentation":{"id":2124,"nodeType":"StructuredDocumentation","src":"653:212:12","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":2132,"name":"RoleGranted","nameLocation":"876:11:12","nodeType":"EventDefinition","parameters":{"id":2131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2126,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:12","nodeType":"VariableDeclaration","scope":2132,"src":"888:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2128,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:12","nodeType":"VariableDeclaration","scope":2132,"src":"910:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2127,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2130,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:12","nodeType":"VariableDeclaration","scope":2132,"src":"935:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2129,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:12"},"src":"870:89:12"},{"anonymous":false,"documentation":{"id":2133,"nodeType":"StructuredDocumentation","src":"965:275:12","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":2141,"name":"RoleRevoked","nameLocation":"1251:11:12","nodeType":"EventDefinition","parameters":{"id":2140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2135,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:12","nodeType":"VariableDeclaration","scope":2141,"src":"1263:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2137,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:12","nodeType":"VariableDeclaration","scope":2141,"src":"1285:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2136,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2139,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:12","nodeType":"VariableDeclaration","scope":2141,"src":"1310:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2138,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:12"},"src":"1245:89:12"},{"documentation":{"id":2142,"nodeType":"StructuredDocumentation","src":"1340:76:12","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":2151,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:12","nodeType":"FunctionDefinition","parameters":{"id":2147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2144,"mutability":"mutable","name":"role","nameLocation":"1446:4:12","nodeType":"VariableDeclaration","scope":2151,"src":"1438:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2146,"mutability":"mutable","name":"account","nameLocation":"1460:7:12","nodeType":"VariableDeclaration","scope":2151,"src":"1452:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2145,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:12"},"returnParameters":{"id":2150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2151,"src":"1492:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2148,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:12"},"scope":2184,"src":"1421:77:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2152,"nodeType":"StructuredDocumentation","src":"1504:184:12","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":2159,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:12","nodeType":"FunctionDefinition","parameters":{"id":2155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2154,"mutability":"mutable","name":"role","nameLocation":"1723:4:12","nodeType":"VariableDeclaration","scope":2159,"src":"1715:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:12"},"returnParameters":{"id":2158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2159,"src":"1752:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:12"},"scope":2184,"src":"1693:68:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2160,"nodeType":"StructuredDocumentation","src":"1767:239:12","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":2167,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:12","nodeType":"FunctionDefinition","parameters":{"id":2165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2162,"mutability":"mutable","name":"role","nameLocation":"2038:4:12","nodeType":"VariableDeclaration","scope":2167,"src":"2030:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2164,"mutability":"mutable","name":"account","nameLocation":"2052:7:12","nodeType":"VariableDeclaration","scope":2167,"src":"2044:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2163,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:12"},"returnParameters":{"id":2166,"nodeType":"ParameterList","parameters":[],"src":"2069:0:12"},"scope":2184,"src":"2011:59:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2168,"nodeType":"StructuredDocumentation","src":"2076:223:12","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":2175,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:12","nodeType":"FunctionDefinition","parameters":{"id":2173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2170,"mutability":"mutable","name":"role","nameLocation":"2332:4:12","nodeType":"VariableDeclaration","scope":2175,"src":"2324:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2172,"mutability":"mutable","name":"account","nameLocation":"2346:7:12","nodeType":"VariableDeclaration","scope":2175,"src":"2338:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2171,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:12"},"returnParameters":{"id":2174,"nodeType":"ParameterList","parameters":[],"src":"2363:0:12"},"scope":2184,"src":"2304:60:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2176,"nodeType":"StructuredDocumentation","src":"2370:480:12","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":2183,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:12","nodeType":"FunctionDefinition","parameters":{"id":2181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2178,"mutability":"mutable","name":"role","nameLocation":"2885:4:12","nodeType":"VariableDeclaration","scope":2183,"src":"2877:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2180,"mutability":"mutable","name":"account","nameLocation":"2899:7:12","nodeType":"VariableDeclaration","scope":2183,"src":"2891:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2179,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:12"},"returnParameters":{"id":2182,"nodeType":"ParameterList","parameters":[],"src":"2916:0:12"},"scope":2184,"src":"2855:62:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2185,"src":"209:2710:12","usedErrors":[]}],"src":"94:2826:12"},"id":12},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[2843],"Ownable":[2297]},"id":2298,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2186,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:13"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":2187,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2298,"sourceUnit":2844,"src":"127:30:13","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2189,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"683:7:13"},"id":2190,"nodeType":"InheritanceSpecifier","src":"683:7:13"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2188,"nodeType":"StructuredDocumentation","src":"159:494:13","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":2297,"linearizedBaseContracts":[2297,2843],"name":"Ownable","nameLocation":"672:7:13","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2192,"mutability":"mutable","name":"_owner","nameLocation":"713:6:13","nodeType":"VariableDeclaration","scope":2297,"src":"697:22:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2191,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":2198,"name":"OwnershipTransferred","nameLocation":"732:20:13","nodeType":"EventDefinition","parameters":{"id":2197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2194,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:13","nodeType":"VariableDeclaration","scope":2198,"src":"753:29:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2193,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2196,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:13","nodeType":"VariableDeclaration","scope":2198,"src":"784:24:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2195,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:13"},"src":"726:84:13"},{"body":{"id":2207,"nodeType":"Block","src":"926:49:13","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2203,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"955:10:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2202,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"936:18:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2206,"nodeType":"ExpressionStatement","src":"936:32:13"}]},"documentation":{"id":2199,"nodeType":"StructuredDocumentation","src":"816:91:13","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":2208,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[],"src":"923:2:13"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[],"src":"926:0:13"},"scope":2297,"src":"912:63:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2215,"nodeType":"Block","src":"1084:41:13","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2211,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2239,"src":"1094:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2213,"nodeType":"ExpressionStatement","src":"1094:13:13"},{"id":2214,"nodeType":"PlaceholderStatement","src":"1117:1:13"}]},"documentation":{"id":2209,"nodeType":"StructuredDocumentation","src":"981:77:13","text":" @dev Throws if called by any account other than the owner."},"id":2216,"name":"onlyOwner","nameLocation":"1072:9:13","nodeType":"ModifierDefinition","parameters":{"id":2210,"nodeType":"ParameterList","parameters":[],"src":"1081:2:13"},"src":"1063:62:13","virtual":false,"visibility":"internal"},{"body":{"id":2224,"nodeType":"Block","src":"1256:30:13","statements":[{"expression":{"id":2222,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"1273:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2221,"id":2223,"nodeType":"Return","src":"1266:13:13"}]},"documentation":{"id":2217,"nodeType":"StructuredDocumentation","src":"1131:65:13","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":2225,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:13","nodeType":"FunctionDefinition","parameters":{"id":2218,"nodeType":"ParameterList","parameters":[],"src":"1215:2:13"},"returnParameters":{"id":2221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2225,"src":"1247:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2219,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:13"},"scope":2297,"src":"1201:85:13","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2238,"nodeType":"Block","src":"1404:85:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2230,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2225,"src":"1422:5:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2232,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2833,"src":"1433:10:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":2235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:13","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":2229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2237,"nodeType":"ExpressionStatement","src":"1414:68:13"}]},"documentation":{"id":2226,"nodeType":"StructuredDocumentation","src":"1292:62:13","text":" @dev Throws if the sender is not the owner."},"id":2239,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:13","nodeType":"FunctionDefinition","parameters":{"id":2227,"nodeType":"ParameterList","parameters":[],"src":"1379:2:13"},"returnParameters":{"id":2228,"nodeType":"ParameterList","parameters":[],"src":"1404:0:13"},"scope":2297,"src":"1359:130:13","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2252,"nodeType":"Block","src":"1878:47:13","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":2248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:1:13","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":2247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1907:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2246,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:13","typeDescriptions":{}}},"id":2249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1907:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2245,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"1888:18:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1888:30:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2251,"nodeType":"ExpressionStatement","src":"1888:30:13"}]},"documentation":{"id":2240,"nodeType":"StructuredDocumentation","src":"1495:324:13","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":2253,"implemented":true,"kind":"function","modifiers":[{"id":2243,"kind":"modifierInvocation","modifierName":{"id":2242,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2216,"src":"1868:9:13"},"nodeType":"ModifierInvocation","src":"1868:9:13"}],"name":"renounceOwnership","nameLocation":"1833:17:13","nodeType":"FunctionDefinition","parameters":{"id":2241,"nodeType":"ParameterList","parameters":[],"src":"1850:2:13"},"returnParameters":{"id":2244,"nodeType":"ParameterList","parameters":[],"src":"1878:0:13"},"scope":2297,"src":"1824:101:13","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2275,"nodeType":"Block","src":"2144:128:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2262,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2256,"src":"2162:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2182:1:13","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":2264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2174:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2263,"name":"address","nodeType":"ElementaryTypeName","src":"2174:7:13","typeDescriptions":{}}},"id":2266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2174:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2162:22:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":2268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2186:40:13","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":2261,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2154:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2154:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2270,"nodeType":"ExpressionStatement","src":"2154:73:13"},{"expression":{"arguments":[{"id":2272,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2256,"src":"2256:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2271,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"2237:18:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2237:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2274,"nodeType":"ExpressionStatement","src":"2237:28:13"}]},"documentation":{"id":2254,"nodeType":"StructuredDocumentation","src":"1931:138:13","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":2276,"implemented":true,"kind":"function","modifiers":[{"id":2259,"kind":"modifierInvocation","modifierName":{"id":2258,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2216,"src":"2134:9:13"},"nodeType":"ModifierInvocation","src":"2134:9:13"}],"name":"transferOwnership","nameLocation":"2083:17:13","nodeType":"FunctionDefinition","parameters":{"id":2257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2256,"mutability":"mutable","name":"newOwner","nameLocation":"2109:8:13","nodeType":"VariableDeclaration","scope":2276,"src":"2101:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2255,"name":"address","nodeType":"ElementaryTypeName","src":"2101:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2100:18:13"},"returnParameters":{"id":2260,"nodeType":"ParameterList","parameters":[],"src":"2144:0:13"},"scope":2297,"src":"2074:198:13","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2295,"nodeType":"Block","src":"2489:124:13","statements":[{"assignments":[2283],"declarations":[{"constant":false,"id":2283,"mutability":"mutable","name":"oldOwner","nameLocation":"2507:8:13","nodeType":"VariableDeclaration","scope":2295,"src":"2499:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2282,"name":"address","nodeType":"ElementaryTypeName","src":"2499:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2285,"initialValue":{"id":2284,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"2518:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2499:25:13"},{"expression":{"id":2288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2286,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"2534:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2287,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2279,"src":"2543:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2534:17:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2289,"nodeType":"ExpressionStatement","src":"2534:17:13"},{"eventCall":{"arguments":[{"id":2291,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2283,"src":"2587:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2292,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2279,"src":"2597:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2290,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2198,"src":"2566:20:13","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2566:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2294,"nodeType":"EmitStatement","src":"2561:45:13"}]},"documentation":{"id":2277,"nodeType":"StructuredDocumentation","src":"2278:143:13","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":2296,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2435:18:13","nodeType":"FunctionDefinition","parameters":{"id":2280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2279,"mutability":"mutable","name":"newOwner","nameLocation":"2462:8:13","nodeType":"VariableDeclaration","scope":2296,"src":"2454:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2278,"name":"address","nodeType":"ElementaryTypeName","src":"2454:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2453:18:13"},"returnParameters":{"id":2281,"nodeType":"ParameterList","parameters":[],"src":"2489:0:13"},"scope":2297,"src":"2426:187:13","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2298,"src":"654:1961:13","usedErrors":[]}],"src":"102:2514:13"},"id":13},"@openzeppelin/contracts/interfaces/IERC5267.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5267.sol","exportedSymbols":{"IERC5267":[2322]},"id":2323,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2299,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:14"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC5267","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2322,"linearizedBaseContracts":[2322],"name":"IERC5267","nameLocation":"142:8:14","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":2300,"nodeType":"StructuredDocumentation","src":"157:84:14","text":" @dev MAY be emitted to signal that the domain could have changed."},"eventSelector":"0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31","id":2302,"name":"EIP712DomainChanged","nameLocation":"252:19:14","nodeType":"EventDefinition","parameters":{"id":2301,"nodeType":"ParameterList","parameters":[],"src":"271:2:14"},"src":"246:28:14"},{"documentation":{"id":2303,"nodeType":"StructuredDocumentation","src":"280:140:14","text":" @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n signature."},"functionSelector":"84b0196e","id":2321,"implemented":false,"kind":"function","modifiers":[],"name":"eip712Domain","nameLocation":"434:12:14","nodeType":"FunctionDefinition","parameters":{"id":2304,"nodeType":"ParameterList","parameters":[],"src":"446:2:14"},"returnParameters":{"id":2320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2306,"mutability":"mutable","name":"fields","nameLocation":"516:6:14","nodeType":"VariableDeclaration","scope":2321,"src":"509:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":2305,"name":"bytes1","nodeType":"ElementaryTypeName","src":"509:6:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":2308,"mutability":"mutable","name":"name","nameLocation":"550:4:14","nodeType":"VariableDeclaration","scope":2321,"src":"536:18:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2307,"name":"string","nodeType":"ElementaryTypeName","src":"536:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2310,"mutability":"mutable","name":"version","nameLocation":"582:7:14","nodeType":"VariableDeclaration","scope":2321,"src":"568:21:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2309,"name":"string","nodeType":"ElementaryTypeName","src":"568:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2312,"mutability":"mutable","name":"chainId","nameLocation":"611:7:14","nodeType":"VariableDeclaration","scope":2321,"src":"603:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2311,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2314,"mutability":"mutable","name":"verifyingContract","nameLocation":"640:17:14","nodeType":"VariableDeclaration","scope":2321,"src":"632:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2313,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2316,"mutability":"mutable","name":"salt","nameLocation":"679:4:14","nodeType":"VariableDeclaration","scope":2321,"src":"671:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"671:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2319,"mutability":"mutable","name":"extensions","nameLocation":"714:10:14","nodeType":"VariableDeclaration","scope":2321,"src":"697:27:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2317,"name":"uint256","nodeType":"ElementaryTypeName","src":"697:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2318,"nodeType":"ArrayTypeName","src":"697:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"495:239:14"},"scope":2322,"src":"425:310:14","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2323,"src":"132:605:14","usedErrors":[]}],"src":"107:631:14"},"id":14},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","exportedSymbols":{"Address":[2821],"Initializable":[2491]},"id":2492,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2324,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:15"},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":2325,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2492,"sourceUnit":2822,"src":"138:33:15","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2326,"nodeType":"StructuredDocumentation","src":"173:2209:15","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 ```solidity\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":2491,"linearizedBaseContracts":[2491],"name":"Initializable","nameLocation":"2401:13:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":2327,"nodeType":"StructuredDocumentation","src":"2421:109:15","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":2329,"mutability":"mutable","name":"_initialized","nameLocation":"2549:12:15","nodeType":"VariableDeclaration","scope":2491,"src":"2535:26:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2328,"name":"uint8","nodeType":"ElementaryTypeName","src":"2535:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":2330,"nodeType":"StructuredDocumentation","src":"2568:91:15","text":" @dev Indicates that the contract is in the process of being initialized."},"id":2332,"mutability":"mutable","name":"_initializing","nameLocation":"2677:13:15","nodeType":"VariableDeclaration","scope":2491,"src":"2664:26:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2331,"name":"bool","nodeType":"ElementaryTypeName","src":"2664:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":2333,"nodeType":"StructuredDocumentation","src":"2697:90:15","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":2337,"name":"Initialized","nameLocation":"2798:11:15","nodeType":"EventDefinition","parameters":{"id":2336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2335,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2816:7:15","nodeType":"VariableDeclaration","scope":2337,"src":"2810:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2334,"name":"uint8","nodeType":"ElementaryTypeName","src":"2810:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2809:15:15"},"src":"2792:33:15"},{"body":{"id":2392,"nodeType":"Block","src":"3258:472:15","statements":[{"assignments":[2341],"declarations":[{"constant":false,"id":2341,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3273:14:15","nodeType":"VariableDeclaration","scope":2392,"src":"3268:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2340,"name":"bool","nodeType":"ElementaryTypeName","src":"3268:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2344,"initialValue":{"id":2343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3290:14:15","subExpression":{"id":2342,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"3291:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3268:36:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2346,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"3336:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2347,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3354:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3369:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3354:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3336:34:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2351,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3335:36:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3376:34:15","subExpression":{"arguments":[{"arguments":[{"id":2356,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3404:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$2491","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$2491","typeString":"contract Initializable"}],"id":2355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3396:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2354,"name":"address","nodeType":"ElementaryTypeName","src":"3396:7:15","typeDescriptions":{}}},"id":2357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3396:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2352,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2821,"src":"3377:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$2821_$","typeString":"type(library Address)"}},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2509,"src":"3377:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3377:33:15","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":2362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2360,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3414:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":2361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3430:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3414:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3376:55:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3375:57:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3335:97:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":2366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3446:48:15","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":2345,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3314:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3314:190:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2368,"nodeType":"ExpressionStatement","src":"3314:190:15"},{"expression":{"id":2371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2369,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3514:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":2370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3529:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3514:16:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2372,"nodeType":"ExpressionStatement","src":"3514:16:15"},{"condition":{"id":2373,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"3544:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2379,"nodeType":"IfStatement","src":"3540:65:15","trueBody":{"id":2378,"nodeType":"Block","src":"3560:45:15","statements":[{"expression":{"id":2376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2374,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"3574:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3590:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3574:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2377,"nodeType":"ExpressionStatement","src":"3574:20:15"}]}},{"id":2380,"nodeType":"PlaceholderStatement","src":"3614:1:15"},{"condition":{"id":2381,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"3629:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2391,"nodeType":"IfStatement","src":"3625:99:15","trueBody":{"id":2390,"nodeType":"Block","src":"3645:79:15","statements":[{"expression":{"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2382,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"3659:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3675:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3659:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2385,"nodeType":"ExpressionStatement","src":"3659:21:15"},{"eventCall":{"arguments":[{"hexValue":"31","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3711:1:15","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":2386,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3699:11:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3699:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2389,"nodeType":"EmitStatement","src":"3694:19:15"}]}}]},"documentation":{"id":2338,"nodeType":"StructuredDocumentation","src":"2831:399:15","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":2393,"name":"initializer","nameLocation":"3244:11:15","nodeType":"ModifierDefinition","parameters":{"id":2339,"nodeType":"ParameterList","parameters":[],"src":"3255:2:15"},"src":"3235:495:15","virtual":false,"visibility":"internal"},{"body":{"id":2425,"nodeType":"Block","src":"4841:255:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4859:14:15","subExpression":{"id":2399,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"4860:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2401,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"4877:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2402,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4892:7:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4877:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4859:40:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":2405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4901:48:15","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":2398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4851:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4851:99:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2407,"nodeType":"ExpressionStatement","src":"4851:99:15"},{"expression":{"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2408,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"4960:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2409,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4975:7:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4960:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2411,"nodeType":"ExpressionStatement","src":"4960:22:15"},{"expression":{"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2412,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"4992:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5008:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4992:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2415,"nodeType":"ExpressionStatement","src":"4992:20:15"},{"id":2416,"nodeType":"PlaceholderStatement","src":"5022:1:15"},{"expression":{"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2417,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"5033:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5049:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5033:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2420,"nodeType":"ExpressionStatement","src":"5033:21:15"},{"eventCall":{"arguments":[{"id":2422,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"5081:7:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2421,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"5069:11:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5069:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2424,"nodeType":"EmitStatement","src":"5064:25:15"}]},"documentation":{"id":2394,"nodeType":"StructuredDocumentation","src":"3736:1062:15","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":2426,"name":"reinitializer","nameLocation":"4812:13:15","nodeType":"ModifierDefinition","parameters":{"id":2397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2396,"mutability":"mutable","name":"version","nameLocation":"4832:7:15","nodeType":"VariableDeclaration","scope":2426,"src":"4826:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2395,"name":"uint8","nodeType":"ElementaryTypeName","src":"4826:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4825:15:15"},"src":"4803:293:15","virtual":false,"visibility":"internal"},{"body":{"id":2435,"nodeType":"Block","src":"5334:97:15","statements":[{"expression":{"arguments":[{"id":2430,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"5352:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":2431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5367:45:15","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":2429,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5344:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5344:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2433,"nodeType":"ExpressionStatement","src":"5344:69:15"},{"id":2434,"nodeType":"PlaceholderStatement","src":"5423:1:15"}]},"documentation":{"id":2427,"nodeType":"StructuredDocumentation","src":"5102:199:15","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":2436,"name":"onlyInitializing","nameLocation":"5315:16:15","nodeType":"ModifierDefinition","parameters":{"id":2428,"nodeType":"ParameterList","parameters":[],"src":"5331:2:15"},"src":"5306:125:15","virtual":false,"visibility":"internal"},{"body":{"id":2471,"nodeType":"Block","src":"5966:231:15","statements":[{"expression":{"arguments":[{"id":2442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5984:14:15","subExpression":{"id":2441,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"5985:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":2443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6000:41:15","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":2440,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5976:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5976:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2445,"nodeType":"ExpressionStatement","src":"5976:66:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2446,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"6056:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":2449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6077:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2448,"name":"uint8","nodeType":"ElementaryTypeName","src":"6077:5:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":2447,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6072:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6072:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":2451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6072:15:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6056:31:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2470,"nodeType":"IfStatement","src":"6052:139:15","trueBody":{"id":2469,"nodeType":"Block","src":"6089:102:15","statements":[{"expression":{"id":2459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2453,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"6103:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":2456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6123:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2455,"name":"uint8","nodeType":"ElementaryTypeName","src":"6123:5:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":2454,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6118:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6118:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":2458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6118:15:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6103:30:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2460,"nodeType":"ExpressionStatement","src":"6103:30:15"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":2464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6169:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2463,"name":"uint8","nodeType":"ElementaryTypeName","src":"6169:5:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":2462,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6164:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6164:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":2466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6164:15:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2461,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"6152:11:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":2467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6152:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2468,"nodeType":"EmitStatement","src":"6147:33:15"}]}}]},"documentation":{"id":2437,"nodeType":"StructuredDocumentation","src":"5437:475:15","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":2472,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5926:20:15","nodeType":"FunctionDefinition","parameters":{"id":2438,"nodeType":"ParameterList","parameters":[],"src":"5946:2:15"},"returnParameters":{"id":2439,"nodeType":"ParameterList","parameters":[],"src":"5966:0:15"},"scope":2491,"src":"5917:280:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2480,"nodeType":"Block","src":"6371:36:15","statements":[{"expression":{"id":2478,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"6388:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":2477,"id":2479,"nodeType":"Return","src":"6381:19:15"}]},"documentation":{"id":2473,"nodeType":"StructuredDocumentation","src":"6203:99:15","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":2481,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6316:22:15","nodeType":"FunctionDefinition","parameters":{"id":2474,"nodeType":"ParameterList","parameters":[],"src":"6338:2:15"},"returnParameters":{"id":2477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2481,"src":"6364:5:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2475,"name":"uint8","nodeType":"ElementaryTypeName","src":"6364:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6363:7:15"},"scope":2491,"src":"6307:100:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2489,"nodeType":"Block","src":"6579:37:15","statements":[{"expression":{"id":2487,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"6596:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2486,"id":2488,"nodeType":"Return","src":"6589:20:15"}]},"documentation":{"id":2482,"nodeType":"StructuredDocumentation","src":"6413:105:15","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":2490,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6532:15:15","nodeType":"FunctionDefinition","parameters":{"id":2483,"nodeType":"ParameterList","parameters":[],"src":"6547:2:15"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2490,"src":"6573:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2484,"name":"bool","nodeType":"ElementaryTypeName","src":"6573:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6572:6:15"},"scope":2491,"src":"6523:93:15","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2492,"src":"2383:4235:15","usedErrors":[]}],"src":"113:6506:15"},"id":15},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[2821]},"id":2822,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2493,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:16"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":2494,"nodeType":"StructuredDocumentation","src":"126:67:16","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":2821,"linearizedBaseContracts":[2821],"name":"Address","nameLocation":"202:7:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":2508,"nodeType":"Block","src":"1478:254:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2502,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"1702:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1702:12:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1702:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1724:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1702:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2501,"id":2507,"nodeType":"Return","src":"1695:30:16"}]},"documentation":{"id":2495,"nodeType":"StructuredDocumentation","src":"216:1191:16","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":2509,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1421:10:16","nodeType":"FunctionDefinition","parameters":{"id":2498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"account","nameLocation":"1440:7:16","nodeType":"VariableDeclaration","scope":2509,"src":"1432:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2496,"name":"address","nodeType":"ElementaryTypeName","src":"1432:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1431:17:16"},"returnParameters":{"id":2501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2509,"src":"1472:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2499,"name":"bool","nodeType":"ElementaryTypeName","src":"1472:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1471:6:16"},"scope":2821,"src":"1412:320:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2542,"nodeType":"Block","src":"2718:241:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2520,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2744:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$2821","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$2821","typeString":"library Address"}],"id":2519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2736:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2518,"name":"address","nodeType":"ElementaryTypeName","src":"2736:7:16","typeDescriptions":{}}},"id":2521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2736:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2736:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2523,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2761:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2736:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":2525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2769:31:16","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":2517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2728:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2728:73:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2527,"nodeType":"ExpressionStatement","src":"2728:73:16"},{"assignments":[2529,null],"declarations":[{"constant":false,"id":2529,"mutability":"mutable","name":"success","nameLocation":"2818:7:16","nodeType":"VariableDeclaration","scope":2542,"src":"2813:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2528,"name":"bool","nodeType":"ElementaryTypeName","src":"2813:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":2536,"initialValue":{"arguments":[{"hexValue":"","id":2534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2861:2:16","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":2530,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"2831:9:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2831:14:16","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":2533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2532,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"2853:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2831:29:16","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":2535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2831:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2812:52:16"},{"expression":{"arguments":[{"id":2538,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2529,"src":"2882:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":2539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2891:60:16","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":2537,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2874:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2874:78:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2541,"nodeType":"ExpressionStatement","src":"2874:78:16"}]},"documentation":{"id":2510,"nodeType":"StructuredDocumentation","src":"1738:904:16","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":2543,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2656:9:16","nodeType":"FunctionDefinition","parameters":{"id":2515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2512,"mutability":"mutable","name":"recipient","nameLocation":"2682:9:16","nodeType":"VariableDeclaration","scope":2543,"src":"2666:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2511,"name":"address","nodeType":"ElementaryTypeName","src":"2666:15:16","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":2514,"mutability":"mutable","name":"amount","nameLocation":"2701:6:16","nodeType":"VariableDeclaration","scope":2543,"src":"2693:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2513,"name":"uint256","nodeType":"ElementaryTypeName","src":"2693:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:43:16"},"returnParameters":{"id":2516,"nodeType":"ParameterList","parameters":[],"src":"2718:0:16"},"scope":2821,"src":"2647:312:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2560,"nodeType":"Block","src":"3790:96:16","statements":[{"expression":{"arguments":[{"id":2554,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"3829:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2555,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"3837:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":2557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3846:32:16","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":2553,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2601,2645],"referencedDeclaration":2645,"src":"3807:21:16","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":2558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3807:72:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2552,"id":2559,"nodeType":"Return","src":"3800:79:16"}]},"documentation":{"id":2544,"nodeType":"StructuredDocumentation","src":"2965:731:16","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":2561,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3710:12:16","nodeType":"FunctionDefinition","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2546,"mutability":"mutable","name":"target","nameLocation":"3731:6:16","nodeType":"VariableDeclaration","scope":2561,"src":"3723:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2545,"name":"address","nodeType":"ElementaryTypeName","src":"3723:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2548,"mutability":"mutable","name":"data","nameLocation":"3752:4:16","nodeType":"VariableDeclaration","scope":2561,"src":"3739:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2547,"name":"bytes","nodeType":"ElementaryTypeName","src":"3739:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3722:35:16"},"returnParameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2561,"src":"3776:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2550,"name":"bytes","nodeType":"ElementaryTypeName","src":"3776:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:14:16"},"scope":2821,"src":"3701:185:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2580,"nodeType":"Block","src":"4255:76:16","statements":[{"expression":{"arguments":[{"id":2574,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2564,"src":"4294:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2575,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2566,"src":"4302:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4308:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2577,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"4311:12:16","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":2573,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2601,2645],"referencedDeclaration":2645,"src":"4272:21:16","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":2578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4272:52:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2572,"id":2579,"nodeType":"Return","src":"4265:59:16"}]},"documentation":{"id":2562,"nodeType":"StructuredDocumentation","src":"3892:211:16","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":2581,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4117:12:16","nodeType":"FunctionDefinition","parameters":{"id":2569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2564,"mutability":"mutable","name":"target","nameLocation":"4147:6:16","nodeType":"VariableDeclaration","scope":2581,"src":"4139:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2563,"name":"address","nodeType":"ElementaryTypeName","src":"4139:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2566,"mutability":"mutable","name":"data","nameLocation":"4176:4:16","nodeType":"VariableDeclaration","scope":2581,"src":"4163:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2565,"name":"bytes","nodeType":"ElementaryTypeName","src":"4163:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2568,"mutability":"mutable","name":"errorMessage","nameLocation":"4204:12:16","nodeType":"VariableDeclaration","scope":2581,"src":"4190:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2567,"name":"string","nodeType":"ElementaryTypeName","src":"4190:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4129:93:16"},"returnParameters":{"id":2572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2581,"src":"4241:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2570,"name":"bytes","nodeType":"ElementaryTypeName","src":"4241:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4240:14:16"},"scope":2821,"src":"4108:223:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2600,"nodeType":"Block","src":"4806:111:16","statements":[{"expression":{"arguments":[{"id":2594,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2584,"src":"4845:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2595,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"4853:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2596,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2588,"src":"4859:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":2597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4866:43:16","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":2593,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2601,2645],"referencedDeclaration":2645,"src":"4823:21:16","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":2598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4823:87:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2592,"id":2599,"nodeType":"Return","src":"4816:94:16"}]},"documentation":{"id":2582,"nodeType":"StructuredDocumentation","src":"4337:351:16","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":2601,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4702:21:16","nodeType":"FunctionDefinition","parameters":{"id":2589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2584,"mutability":"mutable","name":"target","nameLocation":"4732:6:16","nodeType":"VariableDeclaration","scope":2601,"src":"4724:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2583,"name":"address","nodeType":"ElementaryTypeName","src":"4724:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2586,"mutability":"mutable","name":"data","nameLocation":"4753:4:16","nodeType":"VariableDeclaration","scope":2601,"src":"4740:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2585,"name":"bytes","nodeType":"ElementaryTypeName","src":"4740:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2588,"mutability":"mutable","name":"value","nameLocation":"4767:5:16","nodeType":"VariableDeclaration","scope":2601,"src":"4759:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2587,"name":"uint256","nodeType":"ElementaryTypeName","src":"4759:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4723:50:16"},"returnParameters":{"id":2592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2601,"src":"4792:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2590,"name":"bytes","nodeType":"ElementaryTypeName","src":"4792:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4791:14:16"},"scope":2821,"src":"4693:224:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2644,"nodeType":"Block","src":"5344:267:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2618,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5370:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$2821","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$2821","typeString":"library Address"}],"id":2617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5362:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2616,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:16","typeDescriptions":{}}},"id":2619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5362:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5362:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2621,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"5387:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5362:30:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":2623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5394:40:16","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":2615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5354:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5354:81:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2625,"nodeType":"ExpressionStatement","src":"5354:81:16"},{"assignments":[2627,2629],"declarations":[{"constant":false,"id":2627,"mutability":"mutable","name":"success","nameLocation":"5451:7:16","nodeType":"VariableDeclaration","scope":2644,"src":"5446:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2626,"name":"bool","nodeType":"ElementaryTypeName","src":"5446:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2629,"mutability":"mutable","name":"returndata","nameLocation":"5473:10:16","nodeType":"VariableDeclaration","scope":2644,"src":"5460:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2628,"name":"bytes","nodeType":"ElementaryTypeName","src":"5460:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2636,"initialValue":{"arguments":[{"id":2634,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2606,"src":"5513:4:16","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":2630,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2604,"src":"5487:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5487:11:16","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":2633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2632,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"5506:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5487:25:16","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":2635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5487:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5445:73:16"},{"expression":{"arguments":[{"id":2638,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2604,"src":"5562:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2639,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2627,"src":"5570:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2640,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"5579:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2641,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"5591:12:16","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":2637,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"5535:26:16","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":2642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5535:69:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2614,"id":2643,"nodeType":"Return","src":"5528:76:16"}]},"documentation":{"id":2602,"nodeType":"StructuredDocumentation","src":"4923:237:16","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":2645,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5174:21:16","nodeType":"FunctionDefinition","parameters":{"id":2611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2604,"mutability":"mutable","name":"target","nameLocation":"5213:6:16","nodeType":"VariableDeclaration","scope":2645,"src":"5205:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2603,"name":"address","nodeType":"ElementaryTypeName","src":"5205:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2606,"mutability":"mutable","name":"data","nameLocation":"5242:4:16","nodeType":"VariableDeclaration","scope":2645,"src":"5229:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2605,"name":"bytes","nodeType":"ElementaryTypeName","src":"5229:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2608,"mutability":"mutable","name":"value","nameLocation":"5264:5:16","nodeType":"VariableDeclaration","scope":2645,"src":"5256:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"5256:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2610,"mutability":"mutable","name":"errorMessage","nameLocation":"5293:12:16","nodeType":"VariableDeclaration","scope":2645,"src":"5279:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2609,"name":"string","nodeType":"ElementaryTypeName","src":"5279:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5195:116:16"},"returnParameters":{"id":2614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2645,"src":"5330:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2612,"name":"bytes","nodeType":"ElementaryTypeName","src":"5330:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5329:14:16"},"scope":2821,"src":"5165:446:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2661,"nodeType":"Block","src":"5888:97:16","statements":[{"expression":{"arguments":[{"id":2656,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"5924:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2657,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"5932:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":2658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5938:39:16","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":2655,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[2662,2691],"referencedDeclaration":2691,"src":"5905:18:16","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":2659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5905:73:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2654,"id":2660,"nodeType":"Return","src":"5898:80:16"}]},"documentation":{"id":2646,"nodeType":"StructuredDocumentation","src":"5617:166:16","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2662,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5797:18:16","nodeType":"FunctionDefinition","parameters":{"id":2651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2648,"mutability":"mutable","name":"target","nameLocation":"5824:6:16","nodeType":"VariableDeclaration","scope":2662,"src":"5816:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2647,"name":"address","nodeType":"ElementaryTypeName","src":"5816:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2650,"mutability":"mutable","name":"data","nameLocation":"5845:4:16","nodeType":"VariableDeclaration","scope":2662,"src":"5832:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2649,"name":"bytes","nodeType":"ElementaryTypeName","src":"5832:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5815:35:16"},"returnParameters":{"id":2654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2662,"src":"5874:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2652,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5873:14:16"},"scope":2821,"src":"5788:197:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2690,"nodeType":"Block","src":"6327:168:16","statements":[{"assignments":[2675,2677],"declarations":[{"constant":false,"id":2675,"mutability":"mutable","name":"success","nameLocation":"6343:7:16","nodeType":"VariableDeclaration","scope":2690,"src":"6338:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2674,"name":"bool","nodeType":"ElementaryTypeName","src":"6338:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2677,"mutability":"mutable","name":"returndata","nameLocation":"6365:10:16","nodeType":"VariableDeclaration","scope":2690,"src":"6352:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2676,"name":"bytes","nodeType":"ElementaryTypeName","src":"6352:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2682,"initialValue":{"arguments":[{"id":2680,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"6397:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2678,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"6379:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6379:17:16","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":2681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6379:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6337:65:16"},{"expression":{"arguments":[{"id":2684,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"6446:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2685,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2675,"src":"6454:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2686,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2677,"src":"6463:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2687,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"6475:12:16","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":2683,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"6419:26:16","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":2688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6419:69:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2673,"id":2689,"nodeType":"Return","src":"6412:76:16"}]},"documentation":{"id":2663,"nodeType":"StructuredDocumentation","src":"5991:173:16","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2691,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6178:18:16","nodeType":"FunctionDefinition","parameters":{"id":2670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2665,"mutability":"mutable","name":"target","nameLocation":"6214:6:16","nodeType":"VariableDeclaration","scope":2691,"src":"6206:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2664,"name":"address","nodeType":"ElementaryTypeName","src":"6206:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2667,"mutability":"mutable","name":"data","nameLocation":"6243:4:16","nodeType":"VariableDeclaration","scope":2691,"src":"6230:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2666,"name":"bytes","nodeType":"ElementaryTypeName","src":"6230:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2669,"mutability":"mutable","name":"errorMessage","nameLocation":"6271:12:16","nodeType":"VariableDeclaration","scope":2691,"src":"6257:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2668,"name":"string","nodeType":"ElementaryTypeName","src":"6257:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6196:93:16"},"returnParameters":{"id":2673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2691,"src":"6313:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2671,"name":"bytes","nodeType":"ElementaryTypeName","src":"6313:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6312:14:16"},"scope":2821,"src":"6169:326:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2707,"nodeType":"Block","src":"6771:101:16","statements":[{"expression":{"arguments":[{"id":2702,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2694,"src":"6809:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2703,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2696,"src":"6817:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":2704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6823:41:16","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":2701,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[2708,2737],"referencedDeclaration":2737,"src":"6788:20:16","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":2705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6788:77:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2700,"id":2706,"nodeType":"Return","src":"6781:84:16"}]},"documentation":{"id":2692,"nodeType":"StructuredDocumentation","src":"6501:168:16","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":2708,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6683:20:16","nodeType":"FunctionDefinition","parameters":{"id":2697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2694,"mutability":"mutable","name":"target","nameLocation":"6712:6:16","nodeType":"VariableDeclaration","scope":2708,"src":"6704:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2693,"name":"address","nodeType":"ElementaryTypeName","src":"6704:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2696,"mutability":"mutable","name":"data","nameLocation":"6733:4:16","nodeType":"VariableDeclaration","scope":2708,"src":"6720:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2695,"name":"bytes","nodeType":"ElementaryTypeName","src":"6720:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6703:35:16"},"returnParameters":{"id":2700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2708,"src":"6757:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2698,"name":"bytes","nodeType":"ElementaryTypeName","src":"6757:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6756:14:16"},"scope":2821,"src":"6674:198:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2736,"nodeType":"Block","src":"7213:170:16","statements":[{"assignments":[2721,2723],"declarations":[{"constant":false,"id":2721,"mutability":"mutable","name":"success","nameLocation":"7229:7:16","nodeType":"VariableDeclaration","scope":2736,"src":"7224:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2720,"name":"bool","nodeType":"ElementaryTypeName","src":"7224:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2723,"mutability":"mutable","name":"returndata","nameLocation":"7251:10:16","nodeType":"VariableDeclaration","scope":2736,"src":"7238:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2722,"name":"bytes","nodeType":"ElementaryTypeName","src":"7238:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2728,"initialValue":{"arguments":[{"id":2726,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2713,"src":"7285:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2724,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2711,"src":"7265:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"7265:19:16","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":2727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7265:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7223:67:16"},{"expression":{"arguments":[{"id":2730,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2711,"src":"7334:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2731,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"7342:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2732,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2723,"src":"7351:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2733,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2715,"src":"7363:12:16","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":2729,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"7307:26:16","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":2734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7307:69:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2719,"id":2735,"nodeType":"Return","src":"7300:76:16"}]},"documentation":{"id":2709,"nodeType":"StructuredDocumentation","src":"6878:175:16","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":2737,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7067:20:16","nodeType":"FunctionDefinition","parameters":{"id":2716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2711,"mutability":"mutable","name":"target","nameLocation":"7105:6:16","nodeType":"VariableDeclaration","scope":2737,"src":"7097:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2710,"name":"address","nodeType":"ElementaryTypeName","src":"7097:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2713,"mutability":"mutable","name":"data","nameLocation":"7134:4:16","nodeType":"VariableDeclaration","scope":2737,"src":"7121:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2712,"name":"bytes","nodeType":"ElementaryTypeName","src":"7121:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2715,"mutability":"mutable","name":"errorMessage","nameLocation":"7162:12:16","nodeType":"VariableDeclaration","scope":2737,"src":"7148:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2714,"name":"string","nodeType":"ElementaryTypeName","src":"7148:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7087:93:16"},"returnParameters":{"id":2719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2737,"src":"7199:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2717,"name":"bytes","nodeType":"ElementaryTypeName","src":"7199:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7198:14:16"},"scope":2821,"src":"7058:325:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2775,"nodeType":"Block","src":"7865:434:16","statements":[{"condition":{"id":2751,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2742,"src":"7879:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2773,"nodeType":"Block","src":"8235:58:16","statements":[{"expression":{"arguments":[{"id":2769,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2744,"src":"8257:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2770,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2746,"src":"8269:12:16","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":2768,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"8249:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8249:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2772,"nodeType":"ExpressionStatement","src":"8249:33:16"}]},"id":2774,"nodeType":"IfStatement","src":"7875:418:16","trueBody":{"id":2767,"nodeType":"Block","src":"7888:341:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2752,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2744,"src":"7906:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7906:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7927:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7906:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2764,"nodeType":"IfStatement","src":"7902:286:16","trueBody":{"id":2763,"nodeType":"Block","src":"7930:258:16","statements":[{"expression":{"arguments":[{"arguments":[{"id":2758,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"8132:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2757,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2509,"src":"8121:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":2759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8121:18:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":2760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8141:31:16","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":2756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8113:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8113:60:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2762,"nodeType":"ExpressionStatement","src":"8113:60:16"}]}},{"expression":{"id":2765,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2744,"src":"8208:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2750,"id":2766,"nodeType":"Return","src":"8201:17:16"}]}}]},"documentation":{"id":2738,"nodeType":"StructuredDocumentation","src":"7389:277:16","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":2776,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7680:26:16","nodeType":"FunctionDefinition","parameters":{"id":2747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2740,"mutability":"mutable","name":"target","nameLocation":"7724:6:16","nodeType":"VariableDeclaration","scope":2776,"src":"7716:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2739,"name":"address","nodeType":"ElementaryTypeName","src":"7716:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2742,"mutability":"mutable","name":"success","nameLocation":"7745:7:16","nodeType":"VariableDeclaration","scope":2776,"src":"7740:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2741,"name":"bool","nodeType":"ElementaryTypeName","src":"7740:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2744,"mutability":"mutable","name":"returndata","nameLocation":"7775:10:16","nodeType":"VariableDeclaration","scope":2776,"src":"7762:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2743,"name":"bytes","nodeType":"ElementaryTypeName","src":"7762:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2746,"mutability":"mutable","name":"errorMessage","nameLocation":"7809:12:16","nodeType":"VariableDeclaration","scope":2776,"src":"7795:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2745,"name":"string","nodeType":"ElementaryTypeName","src":"7795:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7706:121:16"},"returnParameters":{"id":2750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2776,"src":"7851:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2748,"name":"bytes","nodeType":"ElementaryTypeName","src":"7851:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7850:14:16"},"scope":2821,"src":"7671:628:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2799,"nodeType":"Block","src":"8680:135:16","statements":[{"condition":{"id":2788,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2779,"src":"8694:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2797,"nodeType":"Block","src":"8751:58:16","statements":[{"expression":{"arguments":[{"id":2793,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2781,"src":"8773:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2794,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2783,"src":"8785:12:16","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":2792,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"8765:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8765:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2796,"nodeType":"ExpressionStatement","src":"8765:33:16"}]},"id":2798,"nodeType":"IfStatement","src":"8690:119:16","trueBody":{"id":2791,"nodeType":"Block","src":"8703:42:16","statements":[{"expression":{"id":2789,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2781,"src":"8724:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2787,"id":2790,"nodeType":"Return","src":"8717:17:16"}]}}]},"documentation":{"id":2777,"nodeType":"StructuredDocumentation","src":"8305:210:16","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":2800,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8529:16:16","nodeType":"FunctionDefinition","parameters":{"id":2784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2779,"mutability":"mutable","name":"success","nameLocation":"8560:7:16","nodeType":"VariableDeclaration","scope":2800,"src":"8555:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2778,"name":"bool","nodeType":"ElementaryTypeName","src":"8555:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2781,"mutability":"mutable","name":"returndata","nameLocation":"8590:10:16","nodeType":"VariableDeclaration","scope":2800,"src":"8577:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2780,"name":"bytes","nodeType":"ElementaryTypeName","src":"8577:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2783,"mutability":"mutable","name":"errorMessage","nameLocation":"8624:12:16","nodeType":"VariableDeclaration","scope":2800,"src":"8610:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2782,"name":"string","nodeType":"ElementaryTypeName","src":"8610:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8545:97:16"},"returnParameters":{"id":2787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2800,"src":"8666:12:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2785,"name":"bytes","nodeType":"ElementaryTypeName","src":"8666:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8665:14:16"},"scope":2821,"src":"8520:295:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2819,"nodeType":"Block","src":"8904:457:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2807,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"8980:10:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8980:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9000:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8980:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2817,"nodeType":"Block","src":"9310:45:16","statements":[{"expression":{"arguments":[{"id":2814,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2804,"src":"9331:12:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2813,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9324:6:16","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9324:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2816,"nodeType":"ExpressionStatement","src":"9324:20:16"}]},"id":2818,"nodeType":"IfStatement","src":"8976:379:16","trueBody":{"id":2812,"nodeType":"Block","src":"9003:301:16","statements":[{"AST":{"nodeType":"YulBlock","src":"9161:133:16","statements":[{"nodeType":"YulVariableDeclaration","src":"9179:40:16","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9208:10:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9202:5:16"},"nodeType":"YulFunctionCall","src":"9202:17:16"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9183:15:16","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9247:2:16","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9251:10:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9243:3:16"},"nodeType":"YulFunctionCall","src":"9243:19:16"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9264:15:16"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9236:6:16"},"nodeType":"YulFunctionCall","src":"9236:44:16"},"nodeType":"YulExpressionStatement","src":"9236:44:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2802,"isOffset":false,"isSlot":false,"src":"9208:10:16","valueSize":1},{"declaration":2802,"isOffset":false,"isSlot":false,"src":"9251:10:16","valueSize":1}],"id":2811,"nodeType":"InlineAssembly","src":"9152:142:16"}]}}]},"id":2820,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8830:7:16","nodeType":"FunctionDefinition","parameters":{"id":2805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"returndata","nameLocation":"8851:10:16","nodeType":"VariableDeclaration","scope":2820,"src":"8838:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2801,"name":"bytes","nodeType":"ElementaryTypeName","src":"8838:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2804,"mutability":"mutable","name":"errorMessage","nameLocation":"8877:12:16","nodeType":"VariableDeclaration","scope":2820,"src":"8863:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2803,"name":"string","nodeType":"ElementaryTypeName","src":"8863:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8837:53:16"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[],"src":"8904:0:16"},"scope":2821,"src":"8821:540:16","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2822,"src":"194:9169:16","usedErrors":[]}],"src":"101:9263:16"},"id":16},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[2843]},"id":2844,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2823,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:17"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":2824,"nodeType":"StructuredDocumentation","src":"111:496:17","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":2843,"linearizedBaseContracts":[2843],"name":"Context","nameLocation":"626:7:17","nodeType":"ContractDefinition","nodes":[{"body":{"id":2832,"nodeType":"Block","src":"702:34:17","statements":[{"expression":{"expression":{"id":2829,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2828,"id":2831,"nodeType":"Return","src":"712:17:17"}]},"id":2833,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:17","nodeType":"FunctionDefinition","parameters":{"id":2825,"nodeType":"ParameterList","parameters":[],"src":"659:2:17"},"returnParameters":{"id":2828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2833,"src":"693:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2826,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:17"},"scope":2843,"src":"640:96:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2841,"nodeType":"Block","src":"809:32:17","statements":[{"expression":{"expression":{"id":2838,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2837,"id":2840,"nodeType":"Return","src":"819:15:17"}]},"id":2842,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:17","nodeType":"FunctionDefinition","parameters":{"id":2834,"nodeType":"ParameterList","parameters":[],"src":"759:2:17"},"returnParameters":{"id":2837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2842,"src":"793:14:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2835,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:17"},"scope":2843,"src":"742:99:17","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2844,"src":"608:235:17","usedErrors":[]}],"src":"86:758:17"},"id":17},"@openzeppelin/contracts/utils/ShortStrings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/ShortStrings.sol","exportedSymbols":{"ShortString":[2848],"ShortStrings":[3059],"StorageSlot":[3169]},"id":3060,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2845,"literals":["solidity","^","0.8",".8"],"nodeType":"PragmaDirective","src":"106:23:18"},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"./StorageSlot.sol","id":2846,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3060,"sourceUnit":3170,"src":"131:27:18","symbolAliases":[],"unitAlias":""},{"canonicalName":"ShortString","id":2848,"name":"ShortString","nameLocation":"333:11:18","nodeType":"UserDefinedValueTypeDefinition","src":"328:28:18","underlyingType":{"id":2847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"abstract":false,"baseContracts":[],"canonicalName":"ShortStrings","contractDependencies":[],"contractKind":"library","documentation":{"id":2849,"nodeType":"StructuredDocumentation","src":"358:876:18","text":" @dev This library provides functions to convert short memory strings\n into a `ShortString` type that can be used as an immutable variable.\n Strings of arbitrary length can be optimized using this library if\n they are short enough (up to 31 bytes) by packing them with their\n length (1 byte) in a single EVM word (32 bytes). Additionally, a\n fallback mechanism can be used for every other case.\n Usage example:\n ```solidity\n contract Named {\n     using ShortStrings for *;\n     ShortString private immutable _name;\n     string private _nameFallback;\n     constructor(string memory contractName) {\n         _name = contractName.toShortStringWithFallback(_nameFallback);\n     }\n     function name() external view returns (string memory) {\n         return _name.toStringWithFallback(_nameFallback);\n     }\n }\n ```"},"fullyImplemented":true,"id":3059,"linearizedBaseContracts":[3059],"name":"ShortStrings","nameLocation":"1243:12:18","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2852,"mutability":"constant","name":"_FALLBACK_SENTINEL","nameLocation":"1350:18:18","nodeType":"VariableDeclaration","scope":3059,"src":"1325:112:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1325:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030304646","id":2851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:66:18","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0x00000000000000000000000000000000000000000000000000000000000000FF"},"visibility":"private"},{"errorSelector":"305a27a9","id":2856,"name":"StringTooLong","nameLocation":"1450:13:18","nodeType":"ErrorDefinition","parameters":{"id":2855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2854,"mutability":"mutable","name":"str","nameLocation":"1471:3:18","nodeType":"VariableDeclaration","scope":2856,"src":"1464:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2853,"name":"string","nodeType":"ElementaryTypeName","src":"1464:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1463:12:18"},"src":"1444:32:18"},{"errorSelector":"b3512b0c","id":2858,"name":"InvalidShortString","nameLocation":"1487:18:18","nodeType":"ErrorDefinition","parameters":{"id":2857,"nodeType":"ParameterList","parameters":[],"src":"1505:2:18"},"src":"1481:27:18"},{"body":{"id":2901,"nodeType":"Block","src":"1767:208:18","statements":[{"assignments":[2868],"declarations":[{"constant":false,"id":2868,"mutability":"mutable","name":"bstr","nameLocation":"1790:4:18","nodeType":"VariableDeclaration","scope":2901,"src":"1777:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2867,"name":"bytes","nodeType":"ElementaryTypeName","src":"1777:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2873,"initialValue":{"arguments":[{"id":2871,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2861,"src":"1803:3:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1797:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2869,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:18","typeDescriptions":{}}},"id":2872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1797:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1777:30:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2874,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"1821:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1821:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3331","id":2876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:2:18","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1821:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2883,"nodeType":"IfStatement","src":"1817:72:18","trueBody":{"id":2882,"nodeType":"Block","src":"1839:50:18","statements":[{"errorCall":{"arguments":[{"id":2879,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2861,"src":"1874:3:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2878,"name":"StringTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"1860:13:18","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1860:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2881,"nodeType":"RevertStatement","src":"1853:25:18"}]}},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2892,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"1946:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1938:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1938:7:18","typeDescriptions":{}}},"id":2893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1938:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2888,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:18","typeDescriptions":{}}},"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1930:22:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"expression":{"id":2895,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"1955:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1955:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1930:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1922:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:18","typeDescriptions":{}}},"id":2898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1922:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2884,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"1905:11:18","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"type(ShortString)"}},"id":2885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"1905:16:18","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"function (bytes32) pure returns (ShortString)"}},"id":2899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1905:63:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"functionReturnParameters":2866,"id":2900,"nodeType":"Return","src":"1898:70:18"}]},"documentation":{"id":2859,"nodeType":"StructuredDocumentation","src":"1514:170:18","text":" @dev Encode a string of at most 31 chars into a `ShortString`.\n This will trigger a `StringTooLong` error is the input string is too long."},"id":2902,"implemented":true,"kind":"function","modifiers":[],"name":"toShortString","nameLocation":"1698:13:18","nodeType":"FunctionDefinition","parameters":{"id":2862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2861,"mutability":"mutable","name":"str","nameLocation":"1726:3:18","nodeType":"VariableDeclaration","scope":2902,"src":"1712:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2860,"name":"string","nodeType":"ElementaryTypeName","src":"1712:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1711:19:18"},"returnParameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2902,"src":"1754:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":2864,"nodeType":"UserDefinedTypeName","pathNode":{"id":2863,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"1754:11:18"},"referencedDeclaration":2848,"src":"1754:11:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"internal"}],"src":"1753:13:18"},"scope":3059,"src":"1689:286:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2927,"nodeType":"Block","src":"2133:331:18","statements":[{"assignments":[2912],"declarations":[{"constant":false,"id":2912,"mutability":"mutable","name":"len","nameLocation":"2151:3:18","nodeType":"VariableDeclaration","scope":2927,"src":"2143:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2911,"name":"uint256","nodeType":"ElementaryTypeName","src":"2143:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2916,"initialValue":{"arguments":[{"id":2914,"name":"sstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2906,"src":"2168:4:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}],"id":2913,"name":"byteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"2157:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2848_$returns$_t_uint256_$","typeString":"function (ShortString) pure returns (uint256)"}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2157:16:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2143:30:18"},{"assignments":[2918],"declarations":[{"constant":false,"id":2918,"mutability":"mutable","name":"str","nameLocation":"2275:3:18","nodeType":"VariableDeclaration","scope":2927,"src":"2261:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2917,"name":"string","nodeType":"ElementaryTypeName","src":"2261:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2923,"initialValue":{"arguments":[{"hexValue":"3332","id":2921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2292:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2281:10:18","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2919,"name":"string","nodeType":"ElementaryTypeName","src":"2285:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2281:14:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2261:34:18"},{"AST":{"nodeType":"YulBlock","src":"2357:81:18","statements":[{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"2378:3:18"},{"name":"len","nodeType":"YulIdentifier","src":"2383:3:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2371:6:18"},"nodeType":"YulFunctionCall","src":"2371:16:18"},"nodeType":"YulExpressionStatement","src":"2371:16:18"},{"expression":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"2411:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"2416:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2407:3:18"},"nodeType":"YulFunctionCall","src":"2407:14:18"},{"name":"sstr","nodeType":"YulIdentifier","src":"2423:4:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2400:6:18"},"nodeType":"YulFunctionCall","src":"2400:28:18"},"nodeType":"YulExpressionStatement","src":"2400:28:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2912,"isOffset":false,"isSlot":false,"src":"2383:3:18","valueSize":1},{"declaration":2906,"isOffset":false,"isSlot":false,"src":"2423:4:18","valueSize":1},{"declaration":2918,"isOffset":false,"isSlot":false,"src":"2378:3:18","valueSize":1},{"declaration":2918,"isOffset":false,"isSlot":false,"src":"2411:3:18","valueSize":1}],"id":2924,"nodeType":"InlineAssembly","src":"2348:90:18"},{"expression":{"id":2925,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2918,"src":"2454:3:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2910,"id":2926,"nodeType":"Return","src":"2447:10:18"}]},"documentation":{"id":2903,"nodeType":"StructuredDocumentation","src":"1981:73:18","text":" @dev Decode a `ShortString` back to a \"normal\" string."},"id":2928,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"2068:8:18","nodeType":"FunctionDefinition","parameters":{"id":2907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2906,"mutability":"mutable","name":"sstr","nameLocation":"2089:4:18","nodeType":"VariableDeclaration","scope":2928,"src":"2077:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":2905,"nodeType":"UserDefinedTypeName","pathNode":{"id":2904,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"2077:11:18"},"referencedDeclaration":2848,"src":"2077:11:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"internal"}],"src":"2076:18:18"},"returnParameters":{"id":2910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2928,"src":"2118:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2908,"name":"string","nodeType":"ElementaryTypeName","src":"2118:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2117:15:18"},"scope":3059,"src":"2059:405:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2959,"nodeType":"Block","src":"2606:175:18","statements":[{"assignments":[2938],"declarations":[{"constant":false,"id":2938,"mutability":"mutable","name":"result","nameLocation":"2624:6:18","nodeType":"VariableDeclaration","scope":2959,"src":"2616:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2937,"name":"uint256","nodeType":"ElementaryTypeName","src":"2616:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2948,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2943,"name":"sstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2932,"src":"2660:4:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}],"expression":{"id":2941,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"2641:11:18","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"type(ShortString)"}},"id":2942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"unwrap","nodeType":"MemberAccess","src":"2641:18:18","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$2848_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2641:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2633:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2939,"name":"uint256","nodeType":"ElementaryTypeName","src":"2633:7:18","typeDescriptions":{}}},"id":2945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2633:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":2946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2669:4:18","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"2633:40:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2616:57:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2949,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2938,"src":"2687:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3331","id":2950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2696:2:18","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"2687:11:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2956,"nodeType":"IfStatement","src":"2683:69:18","trueBody":{"id":2955,"nodeType":"Block","src":"2700:52:18","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2952,"name":"InvalidShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"2721:18:18","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2721:20:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2954,"nodeType":"RevertStatement","src":"2714:27:18"}]}},{"expression":{"id":2957,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2938,"src":"2768:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2936,"id":2958,"nodeType":"Return","src":"2761:13:18"}]},"documentation":{"id":2929,"nodeType":"StructuredDocumentation","src":"2470:61:18","text":" @dev Return the length of a `ShortString`."},"id":2960,"implemented":true,"kind":"function","modifiers":[],"name":"byteLength","nameLocation":"2545:10:18","nodeType":"FunctionDefinition","parameters":{"id":2933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2932,"mutability":"mutable","name":"sstr","nameLocation":"2568:4:18","nodeType":"VariableDeclaration","scope":2960,"src":"2556:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":2931,"nodeType":"UserDefinedTypeName","pathNode":{"id":2930,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"2556:11:18"},"referencedDeclaration":2848,"src":"2556:11:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"internal"}],"src":"2555:18:18"},"returnParameters":{"id":2936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2960,"src":"2597:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2934,"name":"uint256","nodeType":"ElementaryTypeName","src":"2597:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2596:9:18"},"scope":3059,"src":"2536:245:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2999,"nodeType":"Block","src":"3004:232:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2973,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"3024:5:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3018:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2971,"name":"bytes","nodeType":"ElementaryTypeName","src":"3018:5:18","typeDescriptions":{}}},"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3018:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3018:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":2976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3040:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3018:24:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2997,"nodeType":"Block","src":"3102:128:18","statements":[{"expression":{"id":2990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":2986,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2965,"src":"3142:5:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}],"expression":{"id":2983,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"3116:11:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$3169_$","typeString":"type(library StorageSlot)"}},"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getStringSlot","nodeType":"MemberAccess","referencedDeclaration":3146,"src":"3116:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_storage_ptr_$returns$_t_struct$_StringSlot_$3077_storage_ptr_$","typeString":"function (string storage pointer) pure returns (struct StorageSlot.StringSlot storage pointer)"}},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3116:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3077_storage_ptr","typeString":"struct StorageSlot.StringSlot storage pointer"}},"id":2988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3076,"src":"3116:38:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"3157:5:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3116:46:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2991,"nodeType":"ExpressionStatement","src":"3116:46:18"},{"expression":{"arguments":[{"id":2994,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2852,"src":"3200:18:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2992,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"3183:11:18","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"type(ShortString)"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"wrap","nodeType":"MemberAccess","src":"3183:16:18","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"function (bytes32) pure returns (ShortString)"}},"id":2995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3183:36:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"functionReturnParameters":2970,"id":2996,"nodeType":"Return","src":"3176:43:18"}]},"id":2998,"nodeType":"IfStatement","src":"3014:216:18","trueBody":{"id":2982,"nodeType":"Block","src":"3044:52:18","statements":[{"expression":{"arguments":[{"id":2979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"3079:5:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2978,"name":"toShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2902,"src":"3065:13:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"function (string memory) pure returns (ShortString)"}},"id":2980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3065:20:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"functionReturnParameters":2970,"id":2981,"nodeType":"Return","src":"3058:27:18"}]}}]},"documentation":{"id":2961,"nodeType":"StructuredDocumentation","src":"2787:103:18","text":" @dev Encode a string into a `ShortString`, or write it to storage if it is too long."},"id":3000,"implemented":true,"kind":"function","modifiers":[],"name":"toShortStringWithFallback","nameLocation":"2904:25:18","nodeType":"FunctionDefinition","parameters":{"id":2966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2963,"mutability":"mutable","name":"value","nameLocation":"2944:5:18","nodeType":"VariableDeclaration","scope":3000,"src":"2930:19:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2962,"name":"string","nodeType":"ElementaryTypeName","src":"2930:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2965,"mutability":"mutable","name":"store","nameLocation":"2966:5:18","nodeType":"VariableDeclaration","scope":3000,"src":"2951:20:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2964,"name":"string","nodeType":"ElementaryTypeName","src":"2951:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2929:43:18"},"returnParameters":{"id":2970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3000,"src":"2991:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":2968,"nodeType":"UserDefinedTypeName","pathNode":{"id":2967,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"2991:11:18"},"referencedDeclaration":2848,"src":"2991:11:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"internal"}],"src":"2990:13:18"},"scope":3059,"src":"2895:341:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3026,"nodeType":"Block","src":"3476:159:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3004,"src":"3509:5:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}],"expression":{"id":3011,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"3490:11:18","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"type(ShortString)"}},"id":3012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"unwrap","nodeType":"MemberAccess","src":"3490:18:18","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$2848_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":3014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3490:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3015,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2852,"src":"3519:18:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3490:47:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3024,"nodeType":"Block","src":"3592:37:18","statements":[{"expression":{"id":3022,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3006,"src":"3613:5:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}},"functionReturnParameters":3010,"id":3023,"nodeType":"Return","src":"3606:12:18"}]},"id":3025,"nodeType":"IfStatement","src":"3486:143:18","trueBody":{"id":3021,"nodeType":"Block","src":"3539:47:18","statements":[{"expression":{"arguments":[{"id":3018,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3004,"src":"3569:5:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}],"id":3017,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2928,"src":"3560:8:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2848_$returns$_t_string_memory_ptr_$","typeString":"function (ShortString) pure returns (string memory)"}},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3560:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3010,"id":3020,"nodeType":"Return","src":"3553:22:18"}]}}]},"documentation":{"id":3001,"nodeType":"StructuredDocumentation","src":"3242:120:18","text":" @dev Decode a string that was encoded to `ShortString` or written to storage using {setWithFallback}."},"id":3027,"implemented":true,"kind":"function","modifiers":[],"name":"toStringWithFallback","nameLocation":"3376:20:18","nodeType":"FunctionDefinition","parameters":{"id":3007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3004,"mutability":"mutable","name":"value","nameLocation":"3409:5:18","nodeType":"VariableDeclaration","scope":3027,"src":"3397:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":3003,"nodeType":"UserDefinedTypeName","pathNode":{"id":3002,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"3397:11:18"},"referencedDeclaration":2848,"src":"3397:11:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"internal"},{"constant":false,"id":3006,"mutability":"mutable","name":"store","nameLocation":"3431:5:18","nodeType":"VariableDeclaration","scope":3027,"src":"3416:20:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3005,"name":"string","nodeType":"ElementaryTypeName","src":"3416:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3396:41:18"},"returnParameters":{"id":3010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3027,"src":"3461:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3008,"name":"string","nodeType":"ElementaryTypeName","src":"3461:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3460:15:18"},"scope":3059,"src":"3367:268:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3057,"nodeType":"Block","src":"4108:175:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"4141:5:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}],"expression":{"id":3038,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"4122:11:18","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"type(ShortString)"}},"id":3039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"unwrap","nodeType":"MemberAccess","src":"4122:18:18","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$2848_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4122:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3042,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2852,"src":"4151:18:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4122:47:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3055,"nodeType":"Block","src":"4226:51:18","statements":[{"expression":{"expression":{"arguments":[{"id":3051,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"4253:5:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}],"id":3050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4247:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3049,"name":"bytes","nodeType":"ElementaryTypeName","src":"4247:5:18","typeDescriptions":{}}},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4247:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":3053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4247:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3037,"id":3054,"nodeType":"Return","src":"4240:26:18"}]},"id":3056,"nodeType":"IfStatement","src":"4118:159:18","trueBody":{"id":3048,"nodeType":"Block","src":"4171:49:18","statements":[{"expression":{"arguments":[{"id":3045,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"4203:5:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}],"id":3044,"name":"byteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"4192:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2848_$returns$_t_uint256_$","typeString":"function (ShortString) pure returns (uint256)"}},"id":3046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:17:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3037,"id":3047,"nodeType":"Return","src":"4185:24:18"}]}}]},"documentation":{"id":3028,"nodeType":"StructuredDocumentation","src":"3641:357:18","text":" @dev Return the length of a string that was encoded to `ShortString` or written to storage using {setWithFallback}.\n WARNING: This will return the \"byte length\" of the string. This may not reflect the actual length in terms of\n actual characters as the UTF-8 encoding of a single character can span over multiple bytes."},"id":3058,"implemented":true,"kind":"function","modifiers":[],"name":"byteLengthWithFallback","nameLocation":"4012:22:18","nodeType":"FunctionDefinition","parameters":{"id":3034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3031,"mutability":"mutable","name":"value","nameLocation":"4047:5:18","nodeType":"VariableDeclaration","scope":3058,"src":"4035:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":3030,"nodeType":"UserDefinedTypeName","pathNode":{"id":3029,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"4035:11:18"},"referencedDeclaration":2848,"src":"4035:11:18","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"internal"},{"constant":false,"id":3033,"mutability":"mutable","name":"store","nameLocation":"4069:5:18","nodeType":"VariableDeclaration","scope":3058,"src":"4054:20:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3032,"name":"string","nodeType":"ElementaryTypeName","src":"4054:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4034:41:18"},"returnParameters":{"id":3037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3058,"src":"4099:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3035,"name":"uint256","nodeType":"ElementaryTypeName","src":"4099:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4098:9:18"},"scope":3059,"src":"4003:280:18","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3060,"src":"1235:3050:18","usedErrors":[2856,2858]}],"src":"106:4180:18"},"id":18},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[3169]},"id":3170,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3061,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"193:23:19"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":3062,"nodeType":"StructuredDocumentation","src":"218:1201:19","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 ```solidity\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`, `uint256`._\n _Available since v4.9 for `string`, `bytes`._"},"fullyImplemented":true,"id":3169,"linearizedBaseContracts":[3169],"name":"StorageSlot","nameLocation":"1428:11:19","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":3065,"members":[{"constant":false,"id":3064,"mutability":"mutable","name":"value","nameLocation":"1483:5:19","nodeType":"VariableDeclaration","scope":3065,"src":"1475:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3063,"name":"address","nodeType":"ElementaryTypeName","src":"1475:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1453:11:19","nodeType":"StructDefinition","scope":3169,"src":"1446:49:19","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":3068,"members":[{"constant":false,"id":3067,"mutability":"mutable","name":"value","nameLocation":"1535:5:19","nodeType":"VariableDeclaration","scope":3068,"src":"1530:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3066,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1508:11:19","nodeType":"StructDefinition","scope":3169,"src":"1501:46:19","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":3071,"members":[{"constant":false,"id":3070,"mutability":"mutable","name":"value","nameLocation":"1590:5:19","nodeType":"VariableDeclaration","scope":3071,"src":"1582:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1582:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1560:11:19","nodeType":"StructDefinition","scope":3169,"src":"1553:49:19","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":3074,"members":[{"constant":false,"id":3073,"mutability":"mutable","name":"value","nameLocation":"1645:5:19","nodeType":"VariableDeclaration","scope":3074,"src":"1637:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3072,"name":"uint256","nodeType":"ElementaryTypeName","src":"1637:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1615:11:19","nodeType":"StructDefinition","scope":3169,"src":"1608:49:19","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":3077,"members":[{"constant":false,"id":3076,"mutability":"mutable","name":"value","nameLocation":"1698:5:19","nodeType":"VariableDeclaration","scope":3077,"src":"1691:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3075,"name":"string","nodeType":"ElementaryTypeName","src":"1691:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1670:10:19","nodeType":"StructDefinition","scope":3169,"src":"1663:47:19","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":3080,"members":[{"constant":false,"id":3079,"mutability":"mutable","name":"value","nameLocation":"1749:5:19","nodeType":"VariableDeclaration","scope":3080,"src":"1743:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3078,"name":"bytes","nodeType":"ElementaryTypeName","src":"1743:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1723:9:19","nodeType":"StructDefinition","scope":3169,"src":"1716:45:19","visibility":"public"},{"body":{"id":3090,"nodeType":"Block","src":"1943:106:19","statements":[{"AST":{"nodeType":"YulBlock","src":"2005:38:19","statements":[{"nodeType":"YulAssignment","src":"2019:14:19","value":{"name":"slot","nodeType":"YulIdentifier","src":"2029:4:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2019:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3087,"isOffset":false,"isSlot":true,"src":"2019:6:19","suffix":"slot","valueSize":1},{"declaration":3083,"isOffset":false,"isSlot":false,"src":"2029:4:19","valueSize":1}],"id":3089,"nodeType":"InlineAssembly","src":"1996:47:19"}]},"documentation":{"id":3081,"nodeType":"StructuredDocumentation","src":"1767:87:19","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":3091,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1868:14:19","nodeType":"FunctionDefinition","parameters":{"id":3084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3083,"mutability":"mutable","name":"slot","nameLocation":"1891:4:19","nodeType":"VariableDeclaration","scope":3091,"src":"1883:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1883:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1882:14:19"},"returnParameters":{"id":3088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3087,"mutability":"mutable","name":"r","nameLocation":"1940:1:19","nodeType":"VariableDeclaration","scope":3091,"src":"1920:21:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3065_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":3086,"nodeType":"UserDefinedTypeName","pathNode":{"id":3085,"name":"AddressSlot","nodeType":"IdentifierPath","referencedDeclaration":3065,"src":"1920:11:19"},"referencedDeclaration":3065,"src":"1920:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3065_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1919:23:19"},"scope":3169,"src":"1859:190:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3101,"nodeType":"Block","src":"2231:106:19","statements":[{"AST":{"nodeType":"YulBlock","src":"2293:38:19","statements":[{"nodeType":"YulAssignment","src":"2307:14:19","value":{"name":"slot","nodeType":"YulIdentifier","src":"2317:4:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2307:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3098,"isOffset":false,"isSlot":true,"src":"2307:6:19","suffix":"slot","valueSize":1},{"declaration":3094,"isOffset":false,"isSlot":false,"src":"2317:4:19","valueSize":1}],"id":3100,"nodeType":"InlineAssembly","src":"2284:47:19"}]},"documentation":{"id":3092,"nodeType":"StructuredDocumentation","src":"2055:87:19","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":3102,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2156:14:19","nodeType":"FunctionDefinition","parameters":{"id":3095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3094,"mutability":"mutable","name":"slot","nameLocation":"2179:4:19","nodeType":"VariableDeclaration","scope":3102,"src":"2171:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2171:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2170:14:19"},"returnParameters":{"id":3099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3098,"mutability":"mutable","name":"r","nameLocation":"2228:1:19","nodeType":"VariableDeclaration","scope":3102,"src":"2208:21:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$3068_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":3097,"nodeType":"UserDefinedTypeName","pathNode":{"id":3096,"name":"BooleanSlot","nodeType":"IdentifierPath","referencedDeclaration":3068,"src":"2208:11:19"},"referencedDeclaration":3068,"src":"2208:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$3068_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2207:23:19"},"scope":3169,"src":"2147:190:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3112,"nodeType":"Block","src":"2519:106:19","statements":[{"AST":{"nodeType":"YulBlock","src":"2581:38:19","statements":[{"nodeType":"YulAssignment","src":"2595:14:19","value":{"name":"slot","nodeType":"YulIdentifier","src":"2605:4:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2595:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3109,"isOffset":false,"isSlot":true,"src":"2595:6:19","suffix":"slot","valueSize":1},{"declaration":3105,"isOffset":false,"isSlot":false,"src":"2605:4:19","valueSize":1}],"id":3111,"nodeType":"InlineAssembly","src":"2572:47:19"}]},"documentation":{"id":3103,"nodeType":"StructuredDocumentation","src":"2343:87:19","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":3113,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2444:14:19","nodeType":"FunctionDefinition","parameters":{"id":3106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3105,"mutability":"mutable","name":"slot","nameLocation":"2467:4:19","nodeType":"VariableDeclaration","scope":3113,"src":"2459:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2459:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2458:14:19"},"returnParameters":{"id":3110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3109,"mutability":"mutable","name":"r","nameLocation":"2516:1:19","nodeType":"VariableDeclaration","scope":3113,"src":"2496:21:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$3071_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":3108,"nodeType":"UserDefinedTypeName","pathNode":{"id":3107,"name":"Bytes32Slot","nodeType":"IdentifierPath","referencedDeclaration":3071,"src":"2496:11:19"},"referencedDeclaration":3071,"src":"2496:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$3071_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2495:23:19"},"scope":3169,"src":"2435:190:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3123,"nodeType":"Block","src":"2807:106:19","statements":[{"AST":{"nodeType":"YulBlock","src":"2869:38:19","statements":[{"nodeType":"YulAssignment","src":"2883:14:19","value":{"name":"slot","nodeType":"YulIdentifier","src":"2893:4:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2883:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3120,"isOffset":false,"isSlot":true,"src":"2883:6:19","suffix":"slot","valueSize":1},{"declaration":3116,"isOffset":false,"isSlot":false,"src":"2893:4:19","valueSize":1}],"id":3122,"nodeType":"InlineAssembly","src":"2860:47:19"}]},"documentation":{"id":3114,"nodeType":"StructuredDocumentation","src":"2631:87:19","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":3124,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2732:14:19","nodeType":"FunctionDefinition","parameters":{"id":3117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3116,"mutability":"mutable","name":"slot","nameLocation":"2755:4:19","nodeType":"VariableDeclaration","scope":3124,"src":"2747:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2747:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2746:14:19"},"returnParameters":{"id":3121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3120,"mutability":"mutable","name":"r","nameLocation":"2804:1:19","nodeType":"VariableDeclaration","scope":3124,"src":"2784:21:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$3074_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":3119,"nodeType":"UserDefinedTypeName","pathNode":{"id":3118,"name":"Uint256Slot","nodeType":"IdentifierPath","referencedDeclaration":3074,"src":"2784:11:19"},"referencedDeclaration":3074,"src":"2784:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$3074_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2783:23:19"},"scope":3169,"src":"2723:190:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3134,"nodeType":"Block","src":"3092:106:19","statements":[{"AST":{"nodeType":"YulBlock","src":"3154:38:19","statements":[{"nodeType":"YulAssignment","src":"3168:14:19","value":{"name":"slot","nodeType":"YulIdentifier","src":"3178:4:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"3168:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3131,"isOffset":false,"isSlot":true,"src":"3168:6:19","suffix":"slot","valueSize":1},{"declaration":3127,"isOffset":false,"isSlot":false,"src":"3178:4:19","valueSize":1}],"id":3133,"nodeType":"InlineAssembly","src":"3145:47:19"}]},"documentation":{"id":3125,"nodeType":"StructuredDocumentation","src":"2919:86:19","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":3135,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3019:13:19","nodeType":"FunctionDefinition","parameters":{"id":3128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3127,"mutability":"mutable","name":"slot","nameLocation":"3041:4:19","nodeType":"VariableDeclaration","scope":3135,"src":"3033:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3033:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3032:14:19"},"returnParameters":{"id":3132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3131,"mutability":"mutable","name":"r","nameLocation":"3089:1:19","nodeType":"VariableDeclaration","scope":3135,"src":"3070:20:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3077_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":3130,"nodeType":"UserDefinedTypeName","pathNode":{"id":3129,"name":"StringSlot","nodeType":"IdentifierPath","referencedDeclaration":3077,"src":"3070:10:19"},"referencedDeclaration":3077,"src":"3070:10:19","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3077_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3069:22:19"},"scope":3169,"src":"3010:188:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3145,"nodeType":"Block","src":"3400:112:19","statements":[{"AST":{"nodeType":"YulBlock","src":"3462:44:19","statements":[{"nodeType":"YulAssignment","src":"3476:20:19","value":{"name":"store.slot","nodeType":"YulIdentifier","src":"3486:10:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"3476:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3142,"isOffset":false,"isSlot":true,"src":"3476:6:19","suffix":"slot","valueSize":1},{"declaration":3138,"isOffset":false,"isSlot":true,"src":"3486:10:19","suffix":"slot","valueSize":1}],"id":3144,"nodeType":"InlineAssembly","src":"3453:53:19"}]},"documentation":{"id":3136,"nodeType":"StructuredDocumentation","src":"3204:101:19","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":3146,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3319:13:19","nodeType":"FunctionDefinition","parameters":{"id":3139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3138,"mutability":"mutable","name":"store","nameLocation":"3348:5:19","nodeType":"VariableDeclaration","scope":3146,"src":"3333:20:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3137,"name":"string","nodeType":"ElementaryTypeName","src":"3333:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3332:22:19"},"returnParameters":{"id":3143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3142,"mutability":"mutable","name":"r","nameLocation":"3397:1:19","nodeType":"VariableDeclaration","scope":3146,"src":"3378:20:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3077_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":3141,"nodeType":"UserDefinedTypeName","pathNode":{"id":3140,"name":"StringSlot","nodeType":"IdentifierPath","referencedDeclaration":3077,"src":"3378:10:19"},"referencedDeclaration":3077,"src":"3378:10:19","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3077_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3377:22:19"},"scope":3169,"src":"3310:202:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3156,"nodeType":"Block","src":"3688:106:19","statements":[{"AST":{"nodeType":"YulBlock","src":"3750:38:19","statements":[{"nodeType":"YulAssignment","src":"3764:14:19","value":{"name":"slot","nodeType":"YulIdentifier","src":"3774:4:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"3764:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3153,"isOffset":false,"isSlot":true,"src":"3764:6:19","suffix":"slot","valueSize":1},{"declaration":3149,"isOffset":false,"isSlot":false,"src":"3774:4:19","valueSize":1}],"id":3155,"nodeType":"InlineAssembly","src":"3741:47:19"}]},"documentation":{"id":3147,"nodeType":"StructuredDocumentation","src":"3518:85:19","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":3157,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3617:12:19","nodeType":"FunctionDefinition","parameters":{"id":3150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3149,"mutability":"mutable","name":"slot","nameLocation":"3638:4:19","nodeType":"VariableDeclaration","scope":3157,"src":"3630:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3630:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3629:14:19"},"returnParameters":{"id":3154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3153,"mutability":"mutable","name":"r","nameLocation":"3685:1:19","nodeType":"VariableDeclaration","scope":3157,"src":"3667:19:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3080_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":3152,"nodeType":"UserDefinedTypeName","pathNode":{"id":3151,"name":"BytesSlot","nodeType":"IdentifierPath","referencedDeclaration":3080,"src":"3667:9:19"},"referencedDeclaration":3080,"src":"3667:9:19","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3080_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3666:21:19"},"scope":3169,"src":"3608:186:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3167,"nodeType":"Block","src":"3991:112:19","statements":[{"AST":{"nodeType":"YulBlock","src":"4053:44:19","statements":[{"nodeType":"YulAssignment","src":"4067:20:19","value":{"name":"store.slot","nodeType":"YulIdentifier","src":"4077:10:19"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"4067:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3164,"isOffset":false,"isSlot":true,"src":"4067:6:19","suffix":"slot","valueSize":1},{"declaration":3160,"isOffset":false,"isSlot":true,"src":"4077:10:19","suffix":"slot","valueSize":1}],"id":3166,"nodeType":"InlineAssembly","src":"4044:53:19"}]},"documentation":{"id":3158,"nodeType":"StructuredDocumentation","src":"3800:99:19","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":3168,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3913:12:19","nodeType":"FunctionDefinition","parameters":{"id":3161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3160,"mutability":"mutable","name":"store","nameLocation":"3940:5:19","nodeType":"VariableDeclaration","scope":3168,"src":"3926:19:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3159,"name":"bytes","nodeType":"ElementaryTypeName","src":"3926:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3925:21:19"},"returnParameters":{"id":3165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3164,"mutability":"mutable","name":"r","nameLocation":"3988:1:19","nodeType":"VariableDeclaration","scope":3168,"src":"3970:19:19","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3080_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":3163,"nodeType":"UserDefinedTypeName","pathNode":{"id":3162,"name":"BytesSlot","nodeType":"IdentifierPath","referencedDeclaration":3080,"src":"3970:9:19"},"referencedDeclaration":3080,"src":"3970:9:19","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3080_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3969:21:19"},"scope":3169,"src":"3904:199:19","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3170,"src":"1420:2685:19","usedErrors":[]}],"src":"193:3913:19"},"id":19},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[4873],"SignedMath":[4978],"Strings":[3398]},"id":3399,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3171,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:20"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":3172,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3399,"sourceUnit":4874,"src":"126:25:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":3173,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3399,"sourceUnit":4979,"src":"152:31:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":3174,"nodeType":"StructuredDocumentation","src":"185:34:20","text":" @dev String operations."},"fullyImplemented":true,"id":3398,"linearizedBaseContracts":[3398],"name":"Strings","nameLocation":"228:7:20","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":3177,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:20","nodeType":"VariableDeclaration","scope":3398,"src":"242:54:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":3175,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":3176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":3180,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:20","nodeType":"VariableDeclaration","scope":3398,"src":"302:43:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3178,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":3179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:20","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":3227,"nodeType":"Block","src":"518:625:20","statements":[{"id":3226,"nodeType":"UncheckedBlock","src":"528:609:20","statements":[{"assignments":[3189],"declarations":[{"constant":false,"id":3189,"mutability":"mutable","name":"length","nameLocation":"560:6:20","nodeType":"VariableDeclaration","scope":3226,"src":"552:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3188,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3196,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3192,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3183,"src":"580:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3190,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"569:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4873_$","typeString":"type(library Math)"}},"id":3191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":4710,"src":"569:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"569:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:20"},{"assignments":[3198],"declarations":[{"constant":false,"id":3198,"mutability":"mutable","name":"buffer","nameLocation":"618:6:20","nodeType":"VariableDeclaration","scope":3226,"src":"604:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3197,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":3203,"initialValue":{"arguments":[{"id":3201,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3189,"src":"638:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":3199,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":3202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"627:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:20"},{"assignments":[3205],"declarations":[{"constant":false,"id":3205,"mutability":"mutable","name":"ptr","nameLocation":"667:3:20","nodeType":"VariableDeclaration","scope":3226,"src":"659:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3204,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3206,"nodeType":"VariableDeclarationStatement","src":"659:11:20"},{"AST":{"nodeType":"YulBlock","src":"740:67:20","statements":[{"nodeType":"YulAssignment","src":"758:35:20","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"769:6:20"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"781:2:20","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"785:6:20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:20"},"nodeType":"YulFunctionCall","src":"777:15:20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:20"},"nodeType":"YulFunctionCall","src":"765:28:20"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"758:3:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3198,"isOffset":false,"isSlot":false,"src":"769:6:20","valueSize":1},{"declaration":3189,"isOffset":false,"isSlot":false,"src":"785:6:20","valueSize":1},{"declaration":3205,"isOffset":false,"isSlot":false,"src":"758:3:20","valueSize":1}],"id":3207,"nodeType":"InlineAssembly","src":"731:76:20"},{"body":{"id":3222,"nodeType":"Block","src":"833:267:20","statements":[{"expression":{"id":3210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:20","subExpression":{"id":3209,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"851:3:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3211,"nodeType":"ExpressionStatement","src":"851:5:20"},{"AST":{"nodeType":"YulBlock","src":"934:84:20","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"964:3:20"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"978:5:20"},{"kind":"number","nodeType":"YulLiteral","src":"985:2:20","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"974:3:20"},"nodeType":"YulFunctionCall","src":"974:14:20"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"990:8:20"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"969:4:20"},"nodeType":"YulFunctionCall","src":"969:30:20"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"956:7:20"},"nodeType":"YulFunctionCall","src":"956:44:20"},"nodeType":"YulExpressionStatement","src":"956:44:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3177,"isOffset":false,"isSlot":false,"src":"990:8:20","valueSize":1},{"declaration":3205,"isOffset":false,"isSlot":false,"src":"964:3:20","valueSize":1},{"declaration":3183,"isOffset":false,"isSlot":false,"src":"978:5:20","valueSize":1}],"id":3212,"nodeType":"InlineAssembly","src":"925:93:20"},{"expression":{"id":3215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3213,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3183,"src":"1035:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":3214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:20","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3216,"nodeType":"ExpressionStatement","src":"1035:11:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3217,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3183,"src":"1068:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3221,"nodeType":"IfStatement","src":"1064:21:20","trueBody":{"id":3220,"nodeType":"Break","src":"1080:5:20"}}]},"condition":{"hexValue":"74727565","id":3208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":3223,"nodeType":"WhileStatement","src":"820:280:20"},{"expression":{"id":3224,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"1120:6:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3187,"id":3225,"nodeType":"Return","src":"1113:13:20"}]}]},"documentation":{"id":3181,"nodeType":"StructuredDocumentation","src":"352:90:20","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":3228,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:20","nodeType":"FunctionDefinition","parameters":{"id":3184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3183,"mutability":"mutable","name":"value","nameLocation":"473:5:20","nodeType":"VariableDeclaration","scope":3228,"src":"465:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3182,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:20"},"returnParameters":{"id":3187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3228,"src":"503:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3185,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:20"},"scope":3398,"src":"447:696:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3255,"nodeType":"Block","src":"1313:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3231,"src":"1354:5:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":3241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:20","trueExpression":{"hexValue":"2d","id":3243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":3249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3231,"src":"1400:5:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":3247,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4978,"src":"1385:10:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$4978_$","typeString":"type(library SignedMath)"}},"id":3248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":4977,"src":"1385:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1385:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3246,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[3228,3256],"referencedDeclaration":3228,"src":"1376:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":3251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1376:31:20","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":3238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1337:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3236,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:20","typeDescriptions":{}}},"id":3253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1330:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3235,"id":3254,"nodeType":"Return","src":"1323:86:20"}]},"documentation":{"id":3229,"nodeType":"StructuredDocumentation","src":"1149:89:20","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":3256,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:20","nodeType":"FunctionDefinition","parameters":{"id":3232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3231,"mutability":"mutable","name":"value","nameLocation":"1268:5:20","nodeType":"VariableDeclaration","scope":3256,"src":"1261:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3230,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:20"},"returnParameters":{"id":3235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3256,"src":"1298:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3233,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:20"},"scope":3398,"src":"1243:173:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3275,"nodeType":"Block","src":"1595:100:20","statements":[{"id":3274,"nodeType":"UncheckedBlock","src":"1605:84:20","statements":[{"expression":{"arguments":[{"id":3265,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3259,"src":"1648:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3259,"src":"1667:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3266,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"1655:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4873_$","typeString":"type(library Math)"}},"id":3267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":4833,"src":"1655:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1655:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3264,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[3276,3352,3372],"referencedDeclaration":3352,"src":"1636:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1636:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3263,"id":3273,"nodeType":"Return","src":"1629:49:20"}]}]},"documentation":{"id":3257,"nodeType":"StructuredDocumentation","src":"1422:94:20","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":3276,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:20","nodeType":"FunctionDefinition","parameters":{"id":3260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3259,"mutability":"mutable","name":"value","nameLocation":"1550:5:20","nodeType":"VariableDeclaration","scope":3276,"src":"1542:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3258,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:20"},"returnParameters":{"id":3263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3276,"src":"1580:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3261,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:20"},"scope":3398,"src":"1521:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3351,"nodeType":"Block","src":"1908:347:20","statements":[{"assignments":[3287],"declarations":[{"constant":false,"id":3287,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:20","nodeType":"VariableDeclaration","scope":3351,"src":"1918:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3286,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3296,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3291,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3281,"src":"1954:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3288,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1940:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:20"},{"expression":{"id":3301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3297,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"1975:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3299,"indexExpression":{"hexValue":"30","id":3298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:20","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:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":3300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3302,"nodeType":"ExpressionStatement","src":"1975:15:20"},{"expression":{"id":3307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3303,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"2000:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3305,"indexExpression":{"hexValue":"31","id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:20","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:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":3306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3308,"nodeType":"ExpressionStatement","src":"2000:15:20"},{"body":{"id":3337,"nodeType":"Block","src":"2070:83:20","statements":[{"expression":{"id":3331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3323,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"2084:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3325,"indexExpression":{"id":3324,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3310,"src":"2091:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":3326,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"2096:8:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":3330,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"2105:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":3328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:20","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3332,"nodeType":"ExpressionStatement","src":"2084:33:20"},{"expression":{"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3333,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"2131:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:20","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3336,"nodeType":"ExpressionStatement","src":"2131:11:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3310,"src":"2058:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":3318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3338,"initializationExpression":{"assignments":[3310],"declarations":[{"constant":false,"id":3310,"mutability":"mutable","name":"i","nameLocation":"2038:1:20","nodeType":"VariableDeclaration","scope":3338,"src":"2030:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3316,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3312,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3281,"src":"2046:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:20"},"loopExpression":{"expression":{"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:20","subExpression":{"id":3320,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3310,"src":"2067:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3322,"nodeType":"ExpressionStatement","src":"2065:3:20"},"nodeType":"ForStatement","src":"2025:128:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"2170:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:20","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":3339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2162:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2162:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3345,"nodeType":"ExpressionStatement","src":"2162:55:20"},{"expression":{"arguments":[{"id":3348,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"2241:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3346,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:20","typeDescriptions":{}}},"id":3349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2234:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3285,"id":3350,"nodeType":"Return","src":"2227:21:20"}]},"documentation":{"id":3277,"nodeType":"StructuredDocumentation","src":"1701:112:20","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":3352,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:20","nodeType":"FunctionDefinition","parameters":{"id":3282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3279,"mutability":"mutable","name":"value","nameLocation":"1847:5:20","nodeType":"VariableDeclaration","scope":3352,"src":"1839:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3281,"mutability":"mutable","name":"length","nameLocation":"1862:6:20","nodeType":"VariableDeclaration","scope":3352,"src":"1854:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3280,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:20"},"returnParameters":{"id":3285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3352,"src":"1893:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3283,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:20"},"scope":3398,"src":"1818:437:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3371,"nodeType":"Block","src":"2480:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":3365,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3355,"src":"2525:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3363,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:20","typeDescriptions":{}}},"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2517:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3361,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:20","typeDescriptions":{}}},"id":3367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2509:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3368,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"2533:15:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3360,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[3276,3352,3372],"referencedDeclaration":3352,"src":"2497:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2497:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3359,"id":3370,"nodeType":"Return","src":"2490:59:20"}]},"documentation":{"id":3353,"nodeType":"StructuredDocumentation","src":"2261:141:20","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":3372,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:20","nodeType":"FunctionDefinition","parameters":{"id":3356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3355,"mutability":"mutable","name":"addr","nameLocation":"2436:4:20","nodeType":"VariableDeclaration","scope":3372,"src":"2428:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3354,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:20"},"returnParameters":{"id":3359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3372,"src":"2465:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3357,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:20"},"scope":3398,"src":"2407:149:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3396,"nodeType":"Block","src":"2711:66:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":3385,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3375,"src":"2744:1:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3383,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:20","typeDescriptions":{}}},"id":3386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2738:8:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3382,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2728:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":3391,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3377,"src":"2767:1:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3389,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:20","typeDescriptions":{}}},"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2761:8:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3388,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2751:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3381,"id":3395,"nodeType":"Return","src":"2721:49:20"}]},"documentation":{"id":3373,"nodeType":"StructuredDocumentation","src":"2562:66:20","text":" @dev Returns true if the two strings are equal."},"id":3397,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:20","nodeType":"FunctionDefinition","parameters":{"id":3378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3375,"mutability":"mutable","name":"a","nameLocation":"2662:1:20","nodeType":"VariableDeclaration","scope":3397,"src":"2648:15:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3374,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3377,"mutability":"mutable","name":"b","nameLocation":"2679:1:20","nodeType":"VariableDeclaration","scope":3397,"src":"2665:15:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3376,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:20"},"returnParameters":{"id":3381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3397,"src":"2705:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3379,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:20"},"scope":3398,"src":"2633:144:20","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3399,"src":"220:2559:20","usedErrors":[]}],"src":"101:2679:20"},"id":20},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[3764],"Math":[4873],"SignedMath":[4978],"Strings":[3398]},"id":3765,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3400,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:21"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":3401,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3765,"sourceUnit":3399,"src":"137:24:21","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":3402,"nodeType":"StructuredDocumentation","src":"163:205:21","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":3764,"linearizedBaseContracts":[3764],"name":"ECDSA","nameLocation":"377:5:21","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":3408,"members":[{"id":3403,"name":"NoError","nameLocation":"417:7:21","nodeType":"EnumValue","src":"417:7:21"},{"id":3404,"name":"InvalidSignature","nameLocation":"434:16:21","nodeType":"EnumValue","src":"434:16:21"},{"id":3405,"name":"InvalidSignatureLength","nameLocation":"460:22:21","nodeType":"EnumValue","src":"460:22:21"},{"id":3406,"name":"InvalidSignatureS","nameLocation":"492:17:21","nodeType":"EnumValue","src":"492:17:21"},{"id":3407,"name":"InvalidSignatureV","nameLocation":"519:17:21","nodeType":"EnumValue","src":"519:17:21"}],"name":"RecoverError","nameLocation":"394:12:21","nodeType":"EnumDefinition","src":"389:175:21"},{"body":{"id":3451,"nodeType":"Block","src":"624:457:21","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3414,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"638:5:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3415,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"647:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":3403,"src":"647:20:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"src":"638:29:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"id":3423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3420,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"734:5:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3421,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"743:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":3404,"src":"743:29:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"src":"734:38:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3429,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"843:5:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3430,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"852:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":3405,"src":"852:35:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"src":"843:44:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"id":3441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3438,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"965:5:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3439,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"974:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":3406,"src":"974:30:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"src":"965:39:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3447,"nodeType":"IfStatement","src":"961:114:21","trueBody":{"id":3446,"nodeType":"Block","src":"1006:69:21","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c7565","id":3443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1027:36:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""},"value":"ECDSA: invalid signature 's' value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""}],"id":3442,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1020:6:21","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1020:44:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3445,"nodeType":"ExpressionStatement","src":"1020:44:21"}]}},"id":3448,"nodeType":"IfStatement","src":"839:236:21","trueBody":{"id":3437,"nodeType":"Block","src":"889:66:21","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","id":3434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"910:33:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""},"value":"ECDSA: invalid signature length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""}],"id":3433,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"903:6:21","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"903:41:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3436,"nodeType":"ExpressionStatement","src":"903:41:21"}]}},"id":3449,"nodeType":"IfStatement","src":"730:345:21","trueBody":{"id":3428,"nodeType":"Block","src":"774:59:21","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","id":3425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"795:26:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""},"value":"ECDSA: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""}],"id":3424,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"788:6:21","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"788:34:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3427,"nodeType":"ExpressionStatement","src":"788:34:21"}]}},"id":3450,"nodeType":"IfStatement","src":"634:441:21","trueBody":{"id":3419,"nodeType":"Block","src":"669:55:21","statements":[{"functionReturnParameters":3413,"id":3418,"nodeType":"Return","src":"683:7:21"}]}}]},"id":3452,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"579:11:21","nodeType":"FunctionDefinition","parameters":{"id":3412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3411,"mutability":"mutable","name":"error","nameLocation":"604:5:21","nodeType":"VariableDeclaration","scope":3452,"src":"591:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3410,"nodeType":"UserDefinedTypeName","pathNode":{"id":3409,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":3408,"src":"591:12:21"},"referencedDeclaration":3408,"src":"591:12:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"590:20:21"},"returnParameters":{"id":3413,"nodeType":"ParameterList","parameters":[],"src":"624:0:21"},"scope":3764,"src":"570:511:21","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3497,"nodeType":"Block","src":"2249:626:21","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3465,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3457,"src":"2263:9:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2263:16:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:2:21","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2263:22:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3495,"nodeType":"Block","src":"2788:81:21","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":3489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:21","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":3488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2810:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3487,"name":"address","nodeType":"ElementaryTypeName","src":"2810:7:21","typeDescriptions":{}}},"id":3490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2810:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3491,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"2822:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":3405,"src":"2822:35:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}}],"id":3493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2809:49:21","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3464,"id":3494,"nodeType":"Return","src":"2802:56:21"}]},"id":3496,"nodeType":"IfStatement","src":"2259:610:21","trueBody":{"id":3486,"nodeType":"Block","src":"2287:495:21","statements":[{"assignments":[3470],"declarations":[{"constant":false,"id":3470,"mutability":"mutable","name":"r","nameLocation":"2309:1:21","nodeType":"VariableDeclaration","scope":3486,"src":"2301:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2301:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3471,"nodeType":"VariableDeclarationStatement","src":"2301:9:21"},{"assignments":[3473],"declarations":[{"constant":false,"id":3473,"mutability":"mutable","name":"s","nameLocation":"2332:1:21","nodeType":"VariableDeclaration","scope":3486,"src":"2324:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3474,"nodeType":"VariableDeclarationStatement","src":"2324:9:21"},{"assignments":[3476],"declarations":[{"constant":false,"id":3476,"mutability":"mutable","name":"v","nameLocation":"2353:1:21","nodeType":"VariableDeclaration","scope":3486,"src":"2347:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3475,"name":"uint8","nodeType":"ElementaryTypeName","src":"2347:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3477,"nodeType":"VariableDeclarationStatement","src":"2347:7:21"},{"AST":{"nodeType":"YulBlock","src":"2555:171:21","statements":[{"nodeType":"YulAssignment","src":"2573:32:21","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2588:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2599:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:21"},"nodeType":"YulFunctionCall","src":"2584:20:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2578:5:21"},"nodeType":"YulFunctionCall","src":"2578:27:21"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2573:1:21"}]},{"nodeType":"YulAssignment","src":"2622:32:21","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2637:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2648:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2633:3:21"},"nodeType":"YulFunctionCall","src":"2633:20:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2627:5:21"},"nodeType":"YulFunctionCall","src":"2627:27:21"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2622:1:21"}]},{"nodeType":"YulAssignment","src":"2671:41:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2681:1:21","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2694:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2705:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2690:3:21"},"nodeType":"YulFunctionCall","src":"2690:20:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2684:5:21"},"nodeType":"YulFunctionCall","src":"2684:27:21"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2676:4:21"},"nodeType":"YulFunctionCall","src":"2676:36:21"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2671:1:21"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3470,"isOffset":false,"isSlot":false,"src":"2573:1:21","valueSize":1},{"declaration":3473,"isOffset":false,"isSlot":false,"src":"2622:1:21","valueSize":1},{"declaration":3457,"isOffset":false,"isSlot":false,"src":"2588:9:21","valueSize":1},{"declaration":3457,"isOffset":false,"isSlot":false,"src":"2637:9:21","valueSize":1},{"declaration":3457,"isOffset":false,"isSlot":false,"src":"2694:9:21","valueSize":1},{"declaration":3476,"isOffset":false,"isSlot":false,"src":"2671:1:21","valueSize":1}],"id":3478,"nodeType":"InlineAssembly","src":"2546:180:21"},{"expression":{"arguments":[{"id":3480,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3455,"src":"2757:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3481,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"2763:1:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3482,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3470,"src":"2766:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3483,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"2769:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3479,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3498,3572,3666],"referencedDeclaration":3666,"src":"2746:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2746:25:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3464,"id":3485,"nodeType":"Return","src":"2739:32:21"}]}}]},"documentation":{"id":3453,"nodeType":"StructuredDocumentation","src":"1087:1053:21","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"id":3498,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2154:10:21","nodeType":"FunctionDefinition","parameters":{"id":3458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3455,"mutability":"mutable","name":"hash","nameLocation":"2173:4:21","nodeType":"VariableDeclaration","scope":3498,"src":"2165:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2165:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3457,"mutability":"mutable","name":"signature","nameLocation":"2192:9:21","nodeType":"VariableDeclaration","scope":3498,"src":"2179:22:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3456,"name":"bytes","nodeType":"ElementaryTypeName","src":"2179:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2164:38:21"},"returnParameters":{"id":3464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3498,"src":"2226:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3459,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3498,"src":"2235:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3462,"nodeType":"UserDefinedTypeName","pathNode":{"id":3461,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":3408,"src":"2235:12:21"},"referencedDeclaration":3408,"src":"2235:12:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"2225:23:21"},"scope":3764,"src":"2145:730:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3524,"nodeType":"Block","src":"3748:140:21","statements":[{"assignments":[3509,3512],"declarations":[{"constant":false,"id":3509,"mutability":"mutable","name":"recovered","nameLocation":"3767:9:21","nodeType":"VariableDeclaration","scope":3524,"src":"3759:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3508,"name":"address","nodeType":"ElementaryTypeName","src":"3759:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3512,"mutability":"mutable","name":"error","nameLocation":"3791:5:21","nodeType":"VariableDeclaration","scope":3524,"src":"3778:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3511,"nodeType":"UserDefinedTypeName","pathNode":{"id":3510,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":3408,"src":"3778:12:21"},"referencedDeclaration":3408,"src":"3778:12:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":3517,"initialValue":{"arguments":[{"id":3514,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3501,"src":"3811:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3515,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"3817:9:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3513,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3498,3572,3666],"referencedDeclaration":3498,"src":"3800:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":3516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3800:27:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"3758:69:21"},{"expression":{"arguments":[{"id":3519,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3512,"src":"3849:5:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}],"id":3518,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"3837:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$3408_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":3520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3837:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3521,"nodeType":"ExpressionStatement","src":"3837:18:21"},{"expression":{"id":3522,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"3872:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3507,"id":3523,"nodeType":"Return","src":"3865:16:21"}]},"documentation":{"id":3499,"nodeType":"StructuredDocumentation","src":"2881:775:21","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"id":3525,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3670:7:21","nodeType":"FunctionDefinition","parameters":{"id":3504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3501,"mutability":"mutable","name":"hash","nameLocation":"3686:4:21","nodeType":"VariableDeclaration","scope":3525,"src":"3678:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3503,"mutability":"mutable","name":"signature","nameLocation":"3705:9:21","nodeType":"VariableDeclaration","scope":3525,"src":"3692:22:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3502,"name":"bytes","nodeType":"ElementaryTypeName","src":"3692:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3677:38:21"},"returnParameters":{"id":3507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3525,"src":"3739:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3505,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3738:9:21"},"scope":3764,"src":"3661:227:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3571,"nodeType":"Block","src":"4245:203:21","statements":[{"assignments":[3541],"declarations":[{"constant":false,"id":3541,"mutability":"mutable","name":"s","nameLocation":"4263:1:21","nodeType":"VariableDeclaration","scope":3571,"src":"4255:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4255:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3548,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3542,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3532,"src":"4267:2:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":3545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4280:66:21","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":3544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4272:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4272:7:21","typeDescriptions":{}}},"id":3546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4272:75:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4267:80:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4255:92:21"},{"assignments":[3550],"declarations":[{"constant":false,"id":3550,"mutability":"mutable","name":"v","nameLocation":"4363:1:21","nodeType":"VariableDeclaration","scope":3571,"src":"4357:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3549,"name":"uint8","nodeType":"ElementaryTypeName","src":"4357:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3563,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3555,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3532,"src":"4382:2:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4374:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3553,"name":"uint256","nodeType":"ElementaryTypeName","src":"4374:7:21","typeDescriptions":{}}},"id":3556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4374:11:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":3557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4389:3:21","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4374:18:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3559,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4373:20:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":3560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4396:2:21","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4373:25:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4367:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3551,"name":"uint8","nodeType":"ElementaryTypeName","src":"4367:5:21","typeDescriptions":{}}},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4367:32:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4357:42:21"},{"expression":{"arguments":[{"id":3565,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"4427:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3566,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3550,"src":"4433:1:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3567,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"4436:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3568,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3541,"src":"4439:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3564,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3498,3572,3666],"referencedDeclaration":3666,"src":"4416:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4416:25:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3539,"id":3570,"nodeType":"Return","src":"4409:32:21"}]},"documentation":{"id":3526,"nodeType":"StructuredDocumentation","src":"3894:243:21","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"id":3572,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4151:10:21","nodeType":"FunctionDefinition","parameters":{"id":3533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3528,"mutability":"mutable","name":"hash","nameLocation":"4170:4:21","nodeType":"VariableDeclaration","scope":3572,"src":"4162:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4162:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3530,"mutability":"mutable","name":"r","nameLocation":"4184:1:21","nodeType":"VariableDeclaration","scope":3572,"src":"4176:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3532,"mutability":"mutable","name":"vs","nameLocation":"4195:2:21","nodeType":"VariableDeclaration","scope":3572,"src":"4187:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4187:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:37:21"},"returnParameters":{"id":3539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3572,"src":"4222:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3534,"name":"address","nodeType":"ElementaryTypeName","src":"4222:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3572,"src":"4231:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3537,"nodeType":"UserDefinedTypeName","pathNode":{"id":3536,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":3408,"src":"4231:12:21"},"referencedDeclaration":3408,"src":"4231:12:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"4221:23:21"},"scope":3764,"src":"4142:306:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3601,"nodeType":"Block","src":"4699:136:21","statements":[{"assignments":[3585,3588],"declarations":[{"constant":false,"id":3585,"mutability":"mutable","name":"recovered","nameLocation":"4718:9:21","nodeType":"VariableDeclaration","scope":3601,"src":"4710:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3584,"name":"address","nodeType":"ElementaryTypeName","src":"4710:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3588,"mutability":"mutable","name":"error","nameLocation":"4742:5:21","nodeType":"VariableDeclaration","scope":3601,"src":"4729:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3587,"nodeType":"UserDefinedTypeName","pathNode":{"id":3586,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":3408,"src":"4729:12:21"},"referencedDeclaration":3408,"src":"4729:12:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":3594,"initialValue":{"arguments":[{"id":3590,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3575,"src":"4762:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3591,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3577,"src":"4768:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3592,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3579,"src":"4771:2:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3589,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3498,3572,3666],"referencedDeclaration":3572,"src":"4751:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4751:23:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"4709:65:21"},{"expression":{"arguments":[{"id":3596,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3588,"src":"4796:5:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}],"id":3595,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"4784:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$3408_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4784:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3598,"nodeType":"ExpressionStatement","src":"4784:18:21"},{"expression":{"id":3599,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3585,"src":"4819:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3583,"id":3600,"nodeType":"Return","src":"4812:16:21"}]},"documentation":{"id":3573,"nodeType":"StructuredDocumentation","src":"4454:154:21","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"id":3602,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4622:7:21","nodeType":"FunctionDefinition","parameters":{"id":3580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3575,"mutability":"mutable","name":"hash","nameLocation":"4638:4:21","nodeType":"VariableDeclaration","scope":3602,"src":"4630:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4630:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3577,"mutability":"mutable","name":"r","nameLocation":"4652:1:21","nodeType":"VariableDeclaration","scope":3602,"src":"4644:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4644:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3579,"mutability":"mutable","name":"vs","nameLocation":"4663:2:21","nodeType":"VariableDeclaration","scope":3602,"src":"4655:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4655:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4629:37:21"},"returnParameters":{"id":3583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3602,"src":"4690:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3581,"name":"address","nodeType":"ElementaryTypeName","src":"4690:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4689:9:21"},"scope":3764,"src":"4613:222:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3665,"nodeType":"Block","src":"5120:1345:21","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3621,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3611,"src":"6016:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6008:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3619,"name":"uint256","nodeType":"ElementaryTypeName","src":"6008:7:21","typeDescriptions":{}}},"id":3622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6008:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":3623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6021:66:21","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6008:79:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3634,"nodeType":"IfStatement","src":"6004:161:21","trueBody":{"id":3633,"nodeType":"Block","src":"6089:76:21","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":3627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6119:1:21","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":3626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6111:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3625,"name":"address","nodeType":"ElementaryTypeName","src":"6111:7:21","typeDescriptions":{}}},"id":3628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6111:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3629,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"6123:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":3406,"src":"6123:30:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}}],"id":3631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6110:44:21","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3618,"id":3632,"nodeType":"Return","src":"6103:51:21"}]}},{"assignments":[3636],"declarations":[{"constant":false,"id":3636,"mutability":"mutable","name":"signer","nameLocation":"6267:6:21","nodeType":"VariableDeclaration","scope":3665,"src":"6259:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3635,"name":"address","nodeType":"ElementaryTypeName","src":"6259:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3643,"initialValue":{"arguments":[{"id":3638,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"6286:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3639,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3607,"src":"6292:1:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3640,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3609,"src":"6295:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3641,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3611,"src":"6298:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3637,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6276:9:21","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":3642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6276:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6259:41:21"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3644,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"6314:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6332:1:21","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":3646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6324:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3645,"name":"address","nodeType":"ElementaryTypeName","src":"6324:7:21","typeDescriptions":{}}},"id":3648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6324:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6314:20:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3659,"nodeType":"IfStatement","src":"6310:101:21","trueBody":{"id":3658,"nodeType":"Block","src":"6336:75:21","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":3652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6366:1:21","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":3651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6358:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3650,"name":"address","nodeType":"ElementaryTypeName","src":"6358:7:21","typeDescriptions":{}}},"id":3653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6358:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3654,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"6370:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":3404,"src":"6370:29:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}}],"id":3656,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6357:43:21","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3618,"id":3657,"nodeType":"Return","src":"6350:50:21"}]}},{"expression":{"components":[{"id":3660,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"6429:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3661,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"6437:12:21","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3408_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":3403,"src":"6437:20:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}}],"id":3663,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6428:30:21","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3618,"id":3664,"nodeType":"Return","src":"6421:37:21"}]},"documentation":{"id":3603,"nodeType":"StructuredDocumentation","src":"4841:163:21","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"id":3666,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5018:10:21","nodeType":"FunctionDefinition","parameters":{"id":3612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3605,"mutability":"mutable","name":"hash","nameLocation":"5037:4:21","nodeType":"VariableDeclaration","scope":3666,"src":"5029:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5029:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3607,"mutability":"mutable","name":"v","nameLocation":"5049:1:21","nodeType":"VariableDeclaration","scope":3666,"src":"5043:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3606,"name":"uint8","nodeType":"ElementaryTypeName","src":"5043:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3609,"mutability":"mutable","name":"r","nameLocation":"5060:1:21","nodeType":"VariableDeclaration","scope":3666,"src":"5052:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5052:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3611,"mutability":"mutable","name":"s","nameLocation":"5071:1:21","nodeType":"VariableDeclaration","scope":3666,"src":"5063:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5063:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5028:45:21"},"returnParameters":{"id":3618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3666,"src":"5097:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3613,"name":"address","nodeType":"ElementaryTypeName","src":"5097:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3666,"src":"5106:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3616,"nodeType":"UserDefinedTypeName","pathNode":{"id":3615,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":3408,"src":"5106:12:21"},"referencedDeclaration":3408,"src":"5106:12:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"5096:23:21"},"scope":3764,"src":"5009:1456:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3698,"nodeType":"Block","src":"6692:138:21","statements":[{"assignments":[3681,3684],"declarations":[{"constant":false,"id":3681,"mutability":"mutable","name":"recovered","nameLocation":"6711:9:21","nodeType":"VariableDeclaration","scope":3698,"src":"6703:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3680,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3684,"mutability":"mutable","name":"error","nameLocation":"6735:5:21","nodeType":"VariableDeclaration","scope":3698,"src":"6722:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3683,"nodeType":"UserDefinedTypeName","pathNode":{"id":3682,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":3408,"src":"6722:12:21"},"referencedDeclaration":3408,"src":"6722:12:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":3691,"initialValue":{"arguments":[{"id":3686,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3669,"src":"6755:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3687,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3671,"src":"6761:1:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3688,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3673,"src":"6764:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3689,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3675,"src":"6767:1:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3685,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3498,3572,3666],"referencedDeclaration":3666,"src":"6744:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6744:25:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3408_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"6702:67:21"},{"expression":{"arguments":[{"id":3693,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3684,"src":"6791:5:21","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$3408","typeString":"enum ECDSA.RecoverError"}],"id":3692,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3452,"src":"6779:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$3408_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6779:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3695,"nodeType":"ExpressionStatement","src":"6779:18:21"},{"expression":{"id":3696,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3681,"src":"6814:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3679,"id":3697,"nodeType":"Return","src":"6807:16:21"}]},"documentation":{"id":3667,"nodeType":"StructuredDocumentation","src":"6471:122:21","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":3699,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6607:7:21","nodeType":"FunctionDefinition","parameters":{"id":3676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3669,"mutability":"mutable","name":"hash","nameLocation":"6623:4:21","nodeType":"VariableDeclaration","scope":3699,"src":"6615:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3668,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6615:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3671,"mutability":"mutable","name":"v","nameLocation":"6635:1:21","nodeType":"VariableDeclaration","scope":3699,"src":"6629:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3670,"name":"uint8","nodeType":"ElementaryTypeName","src":"6629:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3673,"mutability":"mutable","name":"r","nameLocation":"6646:1:21","nodeType":"VariableDeclaration","scope":3699,"src":"6638:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6638:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3675,"mutability":"mutable","name":"s","nameLocation":"6657:1:21","nodeType":"VariableDeclaration","scope":3699,"src":"6649:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6649:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6614:45:21"},"returnParameters":{"id":3679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3678,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3699,"src":"6683:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3677,"name":"address","nodeType":"ElementaryTypeName","src":"6683:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6682:9:21"},"scope":3764,"src":"6598:232:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3708,"nodeType":"Block","src":"7206:310:21","statements":[{"AST":{"nodeType":"YulBlock","src":"7362:148:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7383:4:21","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"7389:34:21","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7376:6:21"},"nodeType":"YulFunctionCall","src":"7376:48:21"},"nodeType":"YulExpressionStatement","src":"7376:48:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7444:4:21","type":"","value":"0x1c"},{"name":"hash","nodeType":"YulIdentifier","src":"7450:4:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7437:6:21"},"nodeType":"YulFunctionCall","src":"7437:18:21"},"nodeType":"YulExpressionStatement","src":"7437:18:21"},{"nodeType":"YulAssignment","src":"7468:32:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7489:4:21","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"7495:4:21","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"7479:9:21"},"nodeType":"YulFunctionCall","src":"7479:21:21"},"variableNames":[{"name":"message","nodeType":"YulIdentifier","src":"7468:7:21"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3702,"isOffset":false,"isSlot":false,"src":"7450:4:21","valueSize":1},{"declaration":3705,"isOffset":false,"isSlot":false,"src":"7468:7:21","valueSize":1}],"id":3707,"nodeType":"InlineAssembly","src":"7353:157:21"}]},"documentation":{"id":3700,"nodeType":"StructuredDocumentation","src":"6836:279:21","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":3709,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7129:22:21","nodeType":"FunctionDefinition","parameters":{"id":3703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3702,"mutability":"mutable","name":"hash","nameLocation":"7160:4:21","nodeType":"VariableDeclaration","scope":3709,"src":"7152:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7152:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7151:14:21"},"returnParameters":{"id":3706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3705,"mutability":"mutable","name":"message","nameLocation":"7197:7:21","nodeType":"VariableDeclaration","scope":3709,"src":"7189:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7189:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7188:17:21"},"scope":3764,"src":"7120:396:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3730,"nodeType":"Block","src":"7881:116:21","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":3720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7925:32:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":3723,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3712,"src":"7976:1:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7976:8:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3721,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"7959:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$3398_$","typeString":"type(library Strings)"}},"id":3722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":3228,"src":"7959:16:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":3725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7959:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3726,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3712,"src":"7987:1:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7908:3:21","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7908:16:21","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7908:81:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3717,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7898:9:21","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7898:92:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3716,"id":3729,"nodeType":"Return","src":"7891:99:21"}]},"documentation":{"id":3710,"nodeType":"StructuredDocumentation","src":"7522:274:21","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":3731,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7810:22:21","nodeType":"FunctionDefinition","parameters":{"id":3713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3712,"mutability":"mutable","name":"s","nameLocation":"7846:1:21","nodeType":"VariableDeclaration","scope":3731,"src":"7833:14:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3711,"name":"bytes","nodeType":"ElementaryTypeName","src":"7833:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7832:16:21"},"returnParameters":{"id":3716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3731,"src":"7872:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7872:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7871:9:21"},"scope":3764,"src":"7801:196:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3742,"nodeType":"Block","src":"8443:290:21","statements":[{"AST":{"nodeType":"YulBlock","src":"8505:222:21","statements":[{"nodeType":"YulVariableDeclaration","src":"8519:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8536:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8530:5:21"},"nodeType":"YulFunctionCall","src":"8530:11:21"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"8523:3:21","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8561:3:21"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"8566:10:21","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8554:6:21"},"nodeType":"YulFunctionCall","src":"8554:23:21"},"nodeType":"YulExpressionStatement","src":"8554:23:21"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8601:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"8606:4:21","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8597:3:21"},"nodeType":"YulFunctionCall","src":"8597:14:21"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"8613:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8590:6:21"},"nodeType":"YulFunctionCall","src":"8590:39:21"},"nodeType":"YulExpressionStatement","src":"8590:39:21"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8653:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"8658:4:21","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8649:3:21"},"nodeType":"YulFunctionCall","src":"8649:14:21"},{"name":"structHash","nodeType":"YulIdentifier","src":"8665:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8642:6:21"},"nodeType":"YulFunctionCall","src":"8642:34:21"},"nodeType":"YulExpressionStatement","src":"8642:34:21"},{"nodeType":"YulAssignment","src":"8689:28:21","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8707:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"8712:4:21","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8697:9:21"},"nodeType":"YulFunctionCall","src":"8697:20:21"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"8689:4:21"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3739,"isOffset":false,"isSlot":false,"src":"8689:4:21","valueSize":1},{"declaration":3734,"isOffset":false,"isSlot":false,"src":"8613:15:21","valueSize":1},{"declaration":3736,"isOffset":false,"isSlot":false,"src":"8665:10:21","valueSize":1}],"id":3741,"nodeType":"InlineAssembly","src":"8496:231:21"}]},"documentation":{"id":3732,"nodeType":"StructuredDocumentation","src":"8003:328:21","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"id":3743,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"8345:15:21","nodeType":"FunctionDefinition","parameters":{"id":3737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3734,"mutability":"mutable","name":"domainSeparator","nameLocation":"8369:15:21","nodeType":"VariableDeclaration","scope":3743,"src":"8361:23:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8361:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3736,"mutability":"mutable","name":"structHash","nameLocation":"8394:10:21","nodeType":"VariableDeclaration","scope":3743,"src":"8386:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8386:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8360:45:21"},"returnParameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3739,"mutability":"mutable","name":"data","nameLocation":"8437:4:21","nodeType":"VariableDeclaration","scope":3743,"src":"8429:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8429:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8428:14:21"},"scope":3764,"src":"8336:397:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3762,"nodeType":"Block","src":"9048:80:21","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":3756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9092:10:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":3757,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"9104:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3758,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3748,"src":"9115:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3754,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9075:3:21","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"9075:16:21","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9075:45:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3753,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9065:9:21","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9065:56:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3752,"id":3761,"nodeType":"Return","src":"9058:63:21"}]},"documentation":{"id":3744,"nodeType":"StructuredDocumentation","src":"8739:193:21","text":" @dev Returns an Ethereum Signed Data with intended validator, created from a\n `validator` and `data` according to the version 0 of EIP-191.\n See {recover}."},"id":3763,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"8946:31:21","nodeType":"FunctionDefinition","parameters":{"id":3749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3746,"mutability":"mutable","name":"validator","nameLocation":"8986:9:21","nodeType":"VariableDeclaration","scope":3763,"src":"8978:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3745,"name":"address","nodeType":"ElementaryTypeName","src":"8978:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3748,"mutability":"mutable","name":"data","nameLocation":"9010:4:21","nodeType":"VariableDeclaration","scope":3763,"src":"8997:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3747,"name":"bytes","nodeType":"ElementaryTypeName","src":"8997:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8977:38:21"},"returnParameters":{"id":3752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3763,"src":"9039:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3750,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9039:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9038:9:21"},"scope":3764,"src":"8937:191:21","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3765,"src":"369:8761:21","usedErrors":[]}],"src":"112:9019:21"},"id":21},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","exportedSymbols":{"ECDSA":[3764],"EIP712":[3968],"IERC5267":[2322],"Math":[4873],"ShortString":[2848],"ShortStrings":[3059],"SignedMath":[4978],"StorageSlot":[3169],"Strings":[3398]},"id":3969,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3766,"literals":["solidity","^","0.8",".8"],"nodeType":"PragmaDirective","src":"113:23:22"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":3767,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3969,"sourceUnit":3765,"src":"138:21:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/ShortStrings.sol","file":"../ShortStrings.sol","id":3768,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3969,"sourceUnit":3060,"src":"160:29:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5267.sol","file":"../../interfaces/IERC5267.sol","id":3769,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3969,"sourceUnit":2323,"src":"190:39:22","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3771,"name":"IERC5267","nodeType":"IdentifierPath","referencedDeclaration":2322,"src":"1837:8:22"},"id":3772,"nodeType":"InheritanceSpecifier","src":"1837:8:22"}],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":3770,"nodeType":"StructuredDocumentation","src":"231:1577:22","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n separator of the implementation contract. This will cause the `_domainSeparatorV4` function to always rebuild the\n separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\n _Available since v3.4._\n @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment"},"fullyImplemented":true,"id":3968,"linearizedBaseContracts":[3968,2322],"name":"EIP712","nameLocation":"1827:6:22","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3774,"libraryName":{"id":3773,"name":"ShortStrings","nodeType":"IdentifierPath","referencedDeclaration":3059,"src":"1858:12:22"},"nodeType":"UsingForDirective","src":"1852:25:22"},{"constant":true,"id":3779,"mutability":"constant","name":"_TYPE_HASH","nameLocation":"1908:10:22","nodeType":"VariableDeclaration","scope":3968,"src":"1883:141:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1883:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":3777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1939:84:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":3776,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1929:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1929:95:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3781,"mutability":"immutable","name":"_cachedDomainSeparator","nameLocation":"2249:22:22","nodeType":"VariableDeclaration","scope":3968,"src":"2223:48:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2223:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3783,"mutability":"immutable","name":"_cachedChainId","nameLocation":"2303:14:22","nodeType":"VariableDeclaration","scope":3968,"src":"2277:40:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3782,"name":"uint256","nodeType":"ElementaryTypeName","src":"2277:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3785,"mutability":"immutable","name":"_cachedThis","nameLocation":"2349:11:22","nodeType":"VariableDeclaration","scope":3968,"src":"2323:37:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3784,"name":"address","nodeType":"ElementaryTypeName","src":"2323:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":3787,"mutability":"immutable","name":"_hashedName","nameLocation":"2393:11:22","nodeType":"VariableDeclaration","scope":3968,"src":"2367:37:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2367:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3789,"mutability":"immutable","name":"_hashedVersion","nameLocation":"2436:14:22","nodeType":"VariableDeclaration","scope":3968,"src":"2410:40:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2410:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3792,"mutability":"immutable","name":"_name","nameLocation":"2487:5:22","nodeType":"VariableDeclaration","scope":3968,"src":"2457:35:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":3791,"nodeType":"UserDefinedTypeName","pathNode":{"id":3790,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"2457:11:22"},"referencedDeclaration":2848,"src":"2457:11:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"private"},{"constant":false,"id":3795,"mutability":"immutable","name":"_version","nameLocation":"2528:8:22","nodeType":"VariableDeclaration","scope":3968,"src":"2498:38:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"},"typeName":{"id":3794,"nodeType":"UserDefinedTypeName","pathNode":{"id":3793,"name":"ShortString","nodeType":"IdentifierPath","referencedDeclaration":2848,"src":"2498:11:22"},"referencedDeclaration":2848,"src":"2498:11:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"visibility":"private"},{"constant":false,"id":3797,"mutability":"mutable","name":"_nameFallback","nameLocation":"2557:13:22","nodeType":"VariableDeclaration","scope":3968,"src":"2542:28:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3796,"name":"string","nodeType":"ElementaryTypeName","src":"2542:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":3799,"mutability":"mutable","name":"_versionFallback","nameLocation":"2591:16:22","nodeType":"VariableDeclaration","scope":3968,"src":"2576:31:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3798,"name":"string","nodeType":"ElementaryTypeName","src":"2576:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":3856,"nodeType":"Block","src":"3233:376:22","statements":[{"expression":{"id":3812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3807,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"3243:5:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3810,"name":"_nameFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"3282:13:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3808,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"3251:4:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toShortStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":3000,"src":"3251:30:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_storage_ptr_$returns$_t_userDefinedValueType$_ShortString_$2848_$bound_to$_t_string_memory_ptr_$","typeString":"function (string memory,string storage pointer) returns (ShortString)"}},"id":3811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3251:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"src":"3243:53:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"id":3813,"nodeType":"ExpressionStatement","src":"3243:53:22"},{"expression":{"id":3819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3814,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"3306:8:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3817,"name":"_versionFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"3351:16:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3815,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"3317:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toShortStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":3000,"src":"3317:33:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_storage_ptr_$returns$_t_userDefinedValueType$_ShortString_$2848_$bound_to$_t_string_memory_ptr_$","typeString":"function (string memory,string storage pointer) returns (ShortString)"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3317:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"src":"3306:62:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"id":3820,"nodeType":"ExpressionStatement","src":"3306:62:22"},{"expression":{"id":3828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3821,"name":"_hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3787,"src":"3378:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3825,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"3408:4:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3402:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3823,"name":"bytes","nodeType":"ElementaryTypeName","src":"3402:5:22","typeDescriptions":{}}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3402:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3822,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3392:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3392:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3378:36:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3829,"nodeType":"ExpressionStatement","src":"3378:36:22"},{"expression":{"id":3837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3830,"name":"_hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3789,"src":"3424:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3834,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"3457:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3451:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3832,"name":"bytes","nodeType":"ElementaryTypeName","src":"3451:5:22","typeDescriptions":{}}},"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3451:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3831,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3441:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3441:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3424:42:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3838,"nodeType":"ExpressionStatement","src":"3424:42:22"},{"expression":{"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3839,"name":"_cachedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"3477:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3840,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3494:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3494:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:30:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3843,"nodeType":"ExpressionStatement","src":"3477:30:22"},{"expression":{"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3844,"name":"_cachedDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3781,"src":"3517:22:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":3845,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3542:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":3846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3542:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3517:48:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3848,"nodeType":"ExpressionStatement","src":"3517:48:22"},{"expression":{"id":3854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3849,"name":"_cachedThis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"3575:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3852,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3597:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}],"id":3851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3589:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3850,"name":"address","nodeType":"ElementaryTypeName","src":"3589:7:22","typeDescriptions":{}}},"id":3853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3589:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3575:27:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3855,"nodeType":"ExpressionStatement","src":"3575:27:22"}]},"documentation":{"id":3800,"nodeType":"StructuredDocumentation","src":"2614:559:22","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"id":3857,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3802,"mutability":"mutable","name":"name","nameLocation":"3204:4:22","nodeType":"VariableDeclaration","scope":3857,"src":"3190:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3801,"name":"string","nodeType":"ElementaryTypeName","src":"3190:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3804,"mutability":"mutable","name":"version","nameLocation":"3224:7:22","nodeType":"VariableDeclaration","scope":3857,"src":"3210:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3803,"name":"string","nodeType":"ElementaryTypeName","src":"3210:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3189:43:22"},"returnParameters":{"id":3806,"nodeType":"ParameterList","parameters":[],"src":"3233:0:22"},"scope":3968,"src":"3178:431:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3882,"nodeType":"Block","src":"3757:200:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3865,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3779:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}],"id":3864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3771:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3863,"name":"address","nodeType":"ElementaryTypeName","src":"3771:7:22","typeDescriptions":{}}},"id":3866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3771:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3867,"name":"_cachedThis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"3788:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3771:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3869,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3803:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3803:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3871,"name":"_cachedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"3820:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3803:31:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3771:63:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3880,"nodeType":"Block","src":"3896:55:22","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3877,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"3917:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":3878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3917:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3862,"id":3879,"nodeType":"Return","src":"3910:30:22"}]},"id":3881,"nodeType":"IfStatement","src":"3767:184:22","trueBody":{"id":3876,"nodeType":"Block","src":"3836:54:22","statements":[{"expression":{"id":3874,"name":"_cachedDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3781,"src":"3857:22:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3862,"id":3875,"nodeType":"Return","src":"3850:29:22"}]}}]},"documentation":{"id":3858,"nodeType":"StructuredDocumentation","src":"3615:75:22","text":" @dev Returns the domain separator for the current chain."},"id":3883,"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3704:18:22","nodeType":"FunctionDefinition","parameters":{"id":3859,"nodeType":"ParameterList","parameters":[],"src":"3722:2:22"},"returnParameters":{"id":3862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3883,"src":"3748:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3748:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3747:9:22"},"scope":3968,"src":"3695:262:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3903,"nodeType":"Block","src":"4027:116:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":3891,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"4065:10:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3892,"name":"_hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3787,"src":"4077:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3893,"name":"_hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3789,"src":"4090:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3894,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4106:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"4106:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3898,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4129:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}],"id":3897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4121:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3896,"name":"address","nodeType":"ElementaryTypeName","src":"4121:7:22","typeDescriptions":{}}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4121:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3889,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4054:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4054:10:22","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4054:81:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3888,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4044:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4044:92:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3887,"id":3902,"nodeType":"Return","src":"4037:99:22"}]},"id":3904,"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3972:21:22","nodeType":"FunctionDefinition","parameters":{"id":3884,"nodeType":"ParameterList","parameters":[],"src":"3993:2:22"},"returnParameters":{"id":3887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3904,"src":"4018:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4018:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4017:9:22"},"scope":3968,"src":"3963:180:22","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3919,"nodeType":"Block","src":"4854:79:22","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3914,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"4893:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":3915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4893:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3916,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3907,"src":"4915:10:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3912,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3764,"src":"4871:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$3764_$","typeString":"type(library ECDSA)"}},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"4871:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4871:55:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3911,"id":3918,"nodeType":"Return","src":"4864:62:22"}]},"documentation":{"id":3905,"nodeType":"StructuredDocumentation","src":"4149:614:22","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     keccak256(\"Mail(address to,string contents)\"),\n     mailTo,\n     keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"id":3920,"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4777:16:22","nodeType":"FunctionDefinition","parameters":{"id":3908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3907,"mutability":"mutable","name":"structHash","nameLocation":"4802:10:22","nodeType":"VariableDeclaration","scope":3920,"src":"4794:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4794:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4793:20:22"},"returnParameters":{"id":3911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3920,"src":"4845:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4845:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4844:9:22"},"scope":3968,"src":"4768:165:22","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2321],"body":{"id":3966,"nodeType":"Block","src":"5366:288:22","statements":[{"expression":{"components":[{"hexValue":"0f","id":3940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"5397:7:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c","typeString":"literal_string hex\"0f\""},"value":"\u000f"},{"arguments":[{"id":3943,"name":"_nameFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"5454:13:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3941,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"5427:5:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":3027,"src":"5427:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2848_$_t_string_storage_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"function (ShortString,string storage pointer) pure returns (string memory)"}},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5427:41:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":3947,"name":"_versionFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"5512:16:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3945,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"5482:8:22","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2848","typeString":"ShortString"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":3027,"src":"5482:29:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2848_$_t_string_storage_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_userDefinedValueType$_ShortString_$2848_$","typeString":"function (ShortString,string storage pointer) pure returns (string memory)"}},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5482:47:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":3949,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5543:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"5543:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3953,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5578:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3968","typeString":"contract EIP712"}],"id":3952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5570:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3951,"name":"address","nodeType":"ElementaryTypeName","src":"5570:7:22","typeDescriptions":{}}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5570:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5605:1:22","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":3956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5597:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5597:7:22","typeDescriptions":{}}},"id":3958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5597:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":3962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5635:1:22","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":3961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5621:13:22","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":3959,"name":"uint256","nodeType":"ElementaryTypeName","src":"5625:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3960,"nodeType":"ArrayTypeName","src":"5625:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":3963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5621:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":3964,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5383:264:22","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(literal_string hex\"0f\",string memory,string memory,uint256,address,bytes32,uint256[] memory)"}},"functionReturnParameters":3939,"id":3965,"nodeType":"Return","src":"5376:271:22"}]},"documentation":{"id":3921,"nodeType":"StructuredDocumentation","src":"4939:77:22","text":" @dev See {EIP-5267}.\n _Available since v4.9._"},"functionSelector":"84b0196e","id":3967,"implemented":true,"kind":"function","modifiers":[],"name":"eip712Domain","nameLocation":"5030:12:22","nodeType":"FunctionDefinition","overrides":{"id":3923,"nodeType":"OverrideSpecifier","overrides":[],"src":"5097:8:22"},"parameters":{"id":3922,"nodeType":"ParameterList","parameters":[],"src":"5042:2:22"},"returnParameters":{"id":3939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3925,"mutability":"mutable","name":"fields","nameLocation":"5143:6:22","nodeType":"VariableDeclaration","scope":3967,"src":"5136:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":3924,"name":"bytes1","nodeType":"ElementaryTypeName","src":"5136:6:22","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":3927,"mutability":"mutable","name":"name","nameLocation":"5177:4:22","nodeType":"VariableDeclaration","scope":3967,"src":"5163:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3926,"name":"string","nodeType":"ElementaryTypeName","src":"5163:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3929,"mutability":"mutable","name":"version","nameLocation":"5209:7:22","nodeType":"VariableDeclaration","scope":3967,"src":"5195:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3928,"name":"string","nodeType":"ElementaryTypeName","src":"5195:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3931,"mutability":"mutable","name":"chainId","nameLocation":"5238:7:22","nodeType":"VariableDeclaration","scope":3967,"src":"5230:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3930,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3933,"mutability":"mutable","name":"verifyingContract","nameLocation":"5267:17:22","nodeType":"VariableDeclaration","scope":3967,"src":"5259:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3932,"name":"address","nodeType":"ElementaryTypeName","src":"5259:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3935,"mutability":"mutable","name":"salt","nameLocation":"5306:4:22","nodeType":"VariableDeclaration","scope":3967,"src":"5298:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3934,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5298:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3938,"mutability":"mutable","name":"extensions","nameLocation":"5341:10:22","nodeType":"VariableDeclaration","scope":3967,"src":"5324:27:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3936,"name":"uint256","nodeType":"ElementaryTypeName","src":"5324:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3937,"nodeType":"ArrayTypeName","src":"5324:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5122:239:22"},"scope":3968,"src":"5021:633:22","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3969,"src":"1809:3847:22","usedErrors":[2856,2858]}],"src":"113:5544:22"},"id":22},"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","exportedSymbols":{"ECDSA":[3764],"EIP712":[3968],"IERC5267":[2322],"Math":[4873],"ShortString":[2848],"ShortStrings":[3059],"SignedMath":[4978],"StorageSlot":[3169],"Strings":[3398]},"id":3972,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3970,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"119:23:23"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","file":"./EIP712.sol","id":3971,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3972,"sourceUnit":3969,"src":"208:22:23","symbolAliases":[],"unitAlias":""}],"src":"119:112:23"},"id":23},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[3995],"IERC165":[4007]},"id":3996,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3973,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:24"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":3974,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3996,"sourceUnit":4008,"src":"124:23:24","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3976,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":4007,"src":"754:7:24"},"id":3977,"nodeType":"InheritanceSpecifier","src":"754:7:24"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":3975,"nodeType":"StructuredDocumentation","src":"149:576:24","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":3995,"linearizedBaseContracts":[3995,4007],"name":"ERC165","nameLocation":"744:6:24","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4006],"body":{"id":3993,"nodeType":"Block","src":"920:64:24","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3986,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"937:11:24","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3988,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4007,"src":"957:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$4007_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$4007_$","typeString":"type(contract IERC165)"}],"id":3987,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:24","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$4007","typeString":"type(contract IERC165)"}},"id":3990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:24","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3985,"id":3992,"nodeType":"Return","src":"930:47:24"}]},"documentation":{"id":3978,"nodeType":"StructuredDocumentation","src":"768:56:24","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":3994,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:24","nodeType":"FunctionDefinition","overrides":{"id":3982,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:24"},"parameters":{"id":3981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3980,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:24","nodeType":"VariableDeclaration","scope":3994,"src":"856:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3979,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:24","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:24"},"returnParameters":{"id":3985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3994,"src":"914:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3983,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:24"},"scope":3995,"src":"829:155:24","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3996,"src":"726:260:24","usedErrors":[]}],"src":"99:888:24"},"id":24},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[4007]},"id":4008,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3997,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:25"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":3998,"nodeType":"StructuredDocumentation","src":"125:279:25","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":4007,"linearizedBaseContracts":[4007],"name":"IERC165","nameLocation":"415:7:25","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3999,"nodeType":"StructuredDocumentation","src":"429:340:25","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":4006,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:25","nodeType":"FunctionDefinition","parameters":{"id":4002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4001,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:25","nodeType":"VariableDeclaration","scope":4006,"src":"801:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4000,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:25"},"returnParameters":{"id":4005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4006,"src":"844:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4003,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:25"},"scope":4007,"src":"774:76:25","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4008,"src":"405:447:25","usedErrors":[]}],"src":"100:753:25"},"id":25},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[4873]},"id":4874,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4009,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:26"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":4010,"nodeType":"StructuredDocumentation","src":"128:73:26","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4873,"linearizedBaseContracts":[4873],"name":"Math","nameLocation":"210:4:26","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":4014,"members":[{"id":4011,"name":"Down","nameLocation":"245:4:26","nodeType":"EnumValue","src":"245:4:26"},{"id":4012,"name":"Up","nameLocation":"287:2:26","nodeType":"EnumValue","src":"287:2:26"},{"id":4013,"name":"Zero","nameLocation":"318:4:26","nodeType":"EnumValue","src":"318:4:26"}],"name":"Rounding","nameLocation":"226:8:26","nodeType":"EnumDefinition","src":"221:122:26"},{"body":{"id":4031,"nodeType":"Block","src":"480:37:26","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4024,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4017,"src":"497:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4025,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"501:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4028,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"509:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:26","trueExpression":{"id":4027,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4017,"src":"505:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4023,"id":4030,"nodeType":"Return","src":"490:20:26"}]},"documentation":{"id":4015,"nodeType":"StructuredDocumentation","src":"349:59:26","text":" @dev Returns the largest of two numbers."},"id":4032,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:26","nodeType":"FunctionDefinition","parameters":{"id":4020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4017,"mutability":"mutable","name":"a","nameLocation":"434:1:26","nodeType":"VariableDeclaration","scope":4032,"src":"426:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4016,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4019,"mutability":"mutable","name":"b","nameLocation":"445:1:26","nodeType":"VariableDeclaration","scope":4032,"src":"437:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4018,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:26"},"returnParameters":{"id":4023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4022,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4032,"src":"471:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4021,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:26"},"scope":4873,"src":"413:104:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4049,"nodeType":"Block","src":"655:37:26","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4042,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4035,"src":"672:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4043,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"676:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4046,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4037,"src":"684:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:26","trueExpression":{"id":4045,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4035,"src":"680:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4041,"id":4048,"nodeType":"Return","src":"665:20:26"}]},"documentation":{"id":4033,"nodeType":"StructuredDocumentation","src":"523:60:26","text":" @dev Returns the smallest of two numbers."},"id":4050,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:26","nodeType":"FunctionDefinition","parameters":{"id":4038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4035,"mutability":"mutable","name":"a","nameLocation":"609:1:26","nodeType":"VariableDeclaration","scope":4050,"src":"601:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4034,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4037,"mutability":"mutable","name":"b","nameLocation":"620:1:26","nodeType":"VariableDeclaration","scope":4050,"src":"612:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4036,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:26"},"returnParameters":{"id":4041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4050,"src":"646:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4039,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:26"},"scope":4873,"src":"588:104:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4072,"nodeType":"Block","src":"876:82:26","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4060,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4053,"src":"931:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4061,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4055,"src":"935:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4063,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4064,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4053,"src":"941:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4065,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4055,"src":"945:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4067,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":4068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4059,"id":4071,"nodeType":"Return","src":"923:28:26"}]},"documentation":{"id":4051,"nodeType":"StructuredDocumentation","src":"698:102:26","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":4073,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:26","nodeType":"FunctionDefinition","parameters":{"id":4056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4053,"mutability":"mutable","name":"a","nameLocation":"830:1:26","nodeType":"VariableDeclaration","scope":4073,"src":"822:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4052,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4055,"mutability":"mutable","name":"b","nameLocation":"841:1:26","nodeType":"VariableDeclaration","scope":4073,"src":"833:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4054,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:26"},"returnParameters":{"id":4059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4073,"src":"867:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4057,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:26"},"scope":4873,"src":"805:153:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4097,"nodeType":"Block","src":"1228:123:26","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4083,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4076,"src":"1316:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4076,"src":"1330:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4090,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4091,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4078,"src":"1339:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:26","trueExpression":{"hexValue":"30","id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4082,"id":4096,"nodeType":"Return","src":"1309:35:26"}]},"documentation":{"id":4074,"nodeType":"StructuredDocumentation","src":"964:188:26","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":4098,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:26","nodeType":"FunctionDefinition","parameters":{"id":4079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4076,"mutability":"mutable","name":"a","nameLocation":"1182:1:26","nodeType":"VariableDeclaration","scope":4098,"src":"1174:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4075,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4078,"mutability":"mutable","name":"b","nameLocation":"1193:1:26","nodeType":"VariableDeclaration","scope":4098,"src":"1185:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4077,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:26"},"returnParameters":{"id":4082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4098,"src":"1219:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4080,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:26"},"scope":4873,"src":"1157:194:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4220,"nodeType":"Block","src":"1765:4115:26","statements":[{"id":4219,"nodeType":"UncheckedBlock","src":"1775:4099:26","statements":[{"assignments":[4111],"declarations":[{"constant":false,"id":4111,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:26","nodeType":"VariableDeclaration","scope":4219,"src":"2096:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4110,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4112,"nodeType":"VariableDeclarationStatement","src":"2096:13:26"},{"assignments":[4114],"declarations":[{"constant":false,"id":4114,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:26","nodeType":"VariableDeclaration","scope":4219,"src":"2168:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4113,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4115,"nodeType":"VariableDeclarationStatement","src":"2168:13:26"},{"AST":{"nodeType":"YulBlock","src":"2248:157:26","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:30:26","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2283:1:26"},{"name":"y","nodeType":"YulIdentifier","src":"2286:1:26"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2293:1:26","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2289:3:26"},"nodeType":"YulFunctionCall","src":"2289:6:26"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2276:6:26"},"nodeType":"YulFunctionCall","src":"2276:20:26"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2270:2:26","type":""}]},{"nodeType":"YulAssignment","src":"2313:18:26","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2326:1:26"},{"name":"y","nodeType":"YulIdentifier","src":"2329:1:26"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2322:3:26"},"nodeType":"YulFunctionCall","src":"2322:9:26"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2313:5:26"}]},{"nodeType":"YulAssignment","src":"2348:43:26","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2365:2:26"},{"name":"prod0","nodeType":"YulIdentifier","src":"2369:5:26"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2361:3:26"},"nodeType":"YulFunctionCall","src":"2361:14:26"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2380:2:26"},{"name":"prod0","nodeType":"YulIdentifier","src":"2384:5:26"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2377:2:26"},"nodeType":"YulFunctionCall","src":"2377:13:26"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2357:3:26"},"nodeType":"YulFunctionCall","src":"2357:34:26"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2348:5:26"}]}]},"evmVersion":"london","externalReferences":[{"declaration":4111,"isOffset":false,"isSlot":false,"src":"2313:5:26","valueSize":1},{"declaration":4111,"isOffset":false,"isSlot":false,"src":"2369:5:26","valueSize":1},{"declaration":4111,"isOffset":false,"isSlot":false,"src":"2384:5:26","valueSize":1},{"declaration":4114,"isOffset":false,"isSlot":false,"src":"2348:5:26","valueSize":1},{"declaration":4101,"isOffset":false,"isSlot":false,"src":"2283:1:26","valueSize":1},{"declaration":4101,"isOffset":false,"isSlot":false,"src":"2326:1:26","valueSize":1},{"declaration":4103,"isOffset":false,"isSlot":false,"src":"2286:1:26","valueSize":1},{"declaration":4103,"isOffset":false,"isSlot":false,"src":"2329:1:26","valueSize":1}],"id":4116,"nodeType":"InlineAssembly","src":"2239:166:26"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4117,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2486:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4125,"nodeType":"IfStatement","src":"2482:368:26","trueBody":{"id":4124,"nodeType":"Block","src":"2498:352:26","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4120,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"2816:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4121,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"2824:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4109,"id":4123,"nodeType":"Return","src":"2809:26:26"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4127,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"2960:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4128,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"2974:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":4130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:26","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":4126,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2952:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2952:53:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4132,"nodeType":"ExpressionStatement","src":"2952:53:26"},{"assignments":[4134],"declarations":[{"constant":false,"id":4134,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:26","nodeType":"VariableDeclaration","scope":4219,"src":"3261:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4133,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4135,"nodeType":"VariableDeclarationStatement","src":"3261:17:26"},{"AST":{"nodeType":"YulBlock","src":"3301:291:26","statements":[{"nodeType":"YulAssignment","src":"3370:38:26","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3390:1:26"},{"name":"y","nodeType":"YulIdentifier","src":"3393:1:26"},{"name":"denominator","nodeType":"YulIdentifier","src":"3396:11:26"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3383:6:26"},"nodeType":"YulFunctionCall","src":"3383:25:26"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3370:9:26"}]},{"nodeType":"YulAssignment","src":"3490:41:26","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3503:5:26"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3513:9:26"},{"name":"prod0","nodeType":"YulIdentifier","src":"3524:5:26"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3510:2:26"},"nodeType":"YulFunctionCall","src":"3510:20:26"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3499:3:26"},"nodeType":"YulFunctionCall","src":"3499:32:26"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3490:5:26"}]},{"nodeType":"YulAssignment","src":"3548:30:26","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3561:5:26"},{"name":"remainder","nodeType":"YulIdentifier","src":"3568:9:26"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3557:3:26"},"nodeType":"YulFunctionCall","src":"3557:21:26"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3548:5:26"}]}]},"evmVersion":"london","externalReferences":[{"declaration":4105,"isOffset":false,"isSlot":false,"src":"3396:11:26","valueSize":1},{"declaration":4111,"isOffset":false,"isSlot":false,"src":"3524:5:26","valueSize":1},{"declaration":4111,"isOffset":false,"isSlot":false,"src":"3548:5:26","valueSize":1},{"declaration":4111,"isOffset":false,"isSlot":false,"src":"3561:5:26","valueSize":1},{"declaration":4114,"isOffset":false,"isSlot":false,"src":"3490:5:26","valueSize":1},{"declaration":4114,"isOffset":false,"isSlot":false,"src":"3503:5:26","valueSize":1},{"declaration":4134,"isOffset":false,"isSlot":false,"src":"3370:9:26","valueSize":1},{"declaration":4134,"isOffset":false,"isSlot":false,"src":"3513:9:26","valueSize":1},{"declaration":4134,"isOffset":false,"isSlot":false,"src":"3568:9:26","valueSize":1},{"declaration":4101,"isOffset":false,"isSlot":false,"src":"3390:1:26","valueSize":1},{"declaration":4103,"isOffset":false,"isSlot":false,"src":"3393:1:26","valueSize":1}],"id":4136,"nodeType":"InlineAssembly","src":"3292:300:26"},{"assignments":[4138],"declarations":[{"constant":false,"id":4138,"mutability":"mutable","name":"twos","nameLocation":"3907:4:26","nodeType":"VariableDeclaration","scope":4219,"src":"3899:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4137,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4146,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4139,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"3914:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:26","subExpression":{"id":4140,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"3930:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4144,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:26"},{"AST":{"nodeType":"YulBlock","src":"3969:362:26","statements":[{"nodeType":"YulAssignment","src":"4034:37:26","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"4053:11:26"},{"name":"twos","nodeType":"YulIdentifier","src":"4066:4:26"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4049:3:26"},"nodeType":"YulFunctionCall","src":"4049:22:26"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"4034:11:26"}]},{"nodeType":"YulAssignment","src":"4138:25:26","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"4151:5:26"},{"name":"twos","nodeType":"YulIdentifier","src":"4158:4:26"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4147:3:26"},"nodeType":"YulFunctionCall","src":"4147:16:26"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"4138:5:26"}]},{"nodeType":"YulAssignment","src":"4278:39:26","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4298:1:26","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4301:4:26"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4294:3:26"},"nodeType":"YulFunctionCall","src":"4294:12:26"},{"name":"twos","nodeType":"YulIdentifier","src":"4308:4:26"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4290:3:26"},"nodeType":"YulFunctionCall","src":"4290:23:26"},{"kind":"number","nodeType":"YulLiteral","src":"4315:1:26","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4286:3:26"},"nodeType":"YulFunctionCall","src":"4286:31:26"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"4278:4:26"}]}]},"evmVersion":"london","externalReferences":[{"declaration":4105,"isOffset":false,"isSlot":false,"src":"4034:11:26","valueSize":1},{"declaration":4105,"isOffset":false,"isSlot":false,"src":"4053:11:26","valueSize":1},{"declaration":4111,"isOffset":false,"isSlot":false,"src":"4138:5:26","valueSize":1},{"declaration":4111,"isOffset":false,"isSlot":false,"src":"4151:5:26","valueSize":1},{"declaration":4138,"isOffset":false,"isSlot":false,"src":"4066:4:26","valueSize":1},{"declaration":4138,"isOffset":false,"isSlot":false,"src":"4158:4:26","valueSize":1},{"declaration":4138,"isOffset":false,"isSlot":false,"src":"4278:4:26","valueSize":1},{"declaration":4138,"isOffset":false,"isSlot":false,"src":"4301:4:26","valueSize":1},{"declaration":4138,"isOffset":false,"isSlot":false,"src":"4308:4:26","valueSize":1}],"id":4147,"nodeType":"InlineAssembly","src":"3960:371:26"},{"expression":{"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4148,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"4397:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4149,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"4406:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4150,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"4414:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4153,"nodeType":"ExpressionStatement","src":"4397:21:26"},{"assignments":[4155],"declarations":[{"constant":false,"id":4155,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:26","nodeType":"VariableDeclaration","scope":4219,"src":"4736:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4154,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4162,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:26","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4157,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"4759:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4159,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":4160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:26"},{"expression":{"id":4169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4163,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"4992:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4165,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"5007:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4166,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5021:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4170,"nodeType":"ExpressionStatement","src":"4992:36:26"},{"expression":{"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4171,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5061:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4173,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"5076:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4174,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5090:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4178,"nodeType":"ExpressionStatement","src":"5061:36:26"},{"expression":{"id":4185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4179,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5131:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4181,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"5146:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4182,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5160:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4186,"nodeType":"ExpressionStatement","src":"5131:36:26"},{"expression":{"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4187,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5201:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4189,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"5216:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4190,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5230:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4194,"nodeType":"ExpressionStatement","src":"5201:36:26"},{"expression":{"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4195,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5271:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4197,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"5286:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4198,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5300:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4202,"nodeType":"ExpressionStatement","src":"5271:36:26"},{"expression":{"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4203,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5342:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4205,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4105,"src":"5357:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4206,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5371:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4210,"nodeType":"ExpressionStatement","src":"5342:36:26"},{"expression":{"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4211,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4108,"src":"5812:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4212,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4111,"src":"5821:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4213,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4155,"src":"5829:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4216,"nodeType":"ExpressionStatement","src":"5812:24:26"},{"expression":{"id":4217,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4108,"src":"5857:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4109,"id":4218,"nodeType":"Return","src":"5850:13:26"}]}]},"documentation":{"id":4099,"nodeType":"StructuredDocumentation","src":"1357:305:26","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":4221,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:26","nodeType":"FunctionDefinition","parameters":{"id":4106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4101,"mutability":"mutable","name":"x","nameLocation":"1691:1:26","nodeType":"VariableDeclaration","scope":4221,"src":"1683:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4100,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4103,"mutability":"mutable","name":"y","nameLocation":"1702:1:26","nodeType":"VariableDeclaration","scope":4221,"src":"1694:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4102,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4105,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:26","nodeType":"VariableDeclaration","scope":4221,"src":"1705:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4104,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:26"},"returnParameters":{"id":4109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4108,"mutability":"mutable","name":"result","nameLocation":"1757:6:26","nodeType":"VariableDeclaration","scope":4221,"src":"1749:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4107,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:26"},"scope":4873,"src":"1667:4213:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4264,"nodeType":"Block","src":"6122:189:26","statements":[{"assignments":[4237],"declarations":[{"constant":false,"id":4237,"mutability":"mutable","name":"result","nameLocation":"6140:6:26","nodeType":"VariableDeclaration","scope":4264,"src":"6132:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4236,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4243,"initialValue":{"arguments":[{"id":4239,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"6156:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4240,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4226,"src":"6159:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4241,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4228,"src":"6162:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4238,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[4221,4265],"referencedDeclaration":4221,"src":"6149:6:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6149:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:26"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4244,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"6188:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4245,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4014,"src":"6200:8:26","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4014_$","typeString":"type(enum Math.Rounding)"}},"id":4246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4012,"src":"6200:11:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"src":"6188:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4249,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4224,"src":"6222:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4250,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4226,"src":"6225:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4251,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4228,"src":"6228:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4248,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:26","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6215:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4261,"nodeType":"IfStatement","src":"6184:98:26","trueBody":{"id":4260,"nodeType":"Block","src":"6246:36:26","statements":[{"expression":{"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4256,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"6260:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4259,"nodeType":"ExpressionStatement","src":"6260:11:26"}]}},{"expression":{"id":4262,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"6298:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4235,"id":4263,"nodeType":"Return","src":"6291:13:26"}]},"documentation":{"id":4222,"nodeType":"StructuredDocumentation","src":"5886:121:26","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":4265,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:26","nodeType":"FunctionDefinition","parameters":{"id":4232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4224,"mutability":"mutable","name":"x","nameLocation":"6036:1:26","nodeType":"VariableDeclaration","scope":4265,"src":"6028:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4223,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4226,"mutability":"mutable","name":"y","nameLocation":"6047:1:26","nodeType":"VariableDeclaration","scope":4265,"src":"6039:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4225,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4228,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:26","nodeType":"VariableDeclaration","scope":4265,"src":"6050:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4227,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4231,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:26","nodeType":"VariableDeclaration","scope":4265,"src":"6071:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"typeName":{"id":4230,"nodeType":"UserDefinedTypeName","pathNode":{"id":4229,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":4014,"src":"6071:8:26"},"referencedDeclaration":4014,"src":"6071:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:26"},"returnParameters":{"id":4235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4265,"src":"6113:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4233,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:26"},"scope":4873,"src":"6012:299:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4376,"nodeType":"Block","src":"6587:1585:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4273,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"6601:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4279,"nodeType":"IfStatement","src":"6597:45:26","trueBody":{"id":4278,"nodeType":"Block","src":"6609:33:26","statements":[{"expression":{"hexValue":"30","id":4276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":4272,"id":4277,"nodeType":"Return","src":"6623:8:26"}]}},{"assignments":[4281],"declarations":[{"constant":false,"id":4281,"mutability":"mutable","name":"result","nameLocation":"7329:6:26","nodeType":"VariableDeclaration","scope":4376,"src":"7321:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4280,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4290,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:26","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":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4284,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"7349:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4283,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4545,4581],"referencedDeclaration":4545,"src":"7344:4:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7344:7:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:26"},{"id":4375,"nodeType":"UncheckedBlock","src":"7758:408:26","statements":[{"expression":{"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4291,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7782:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4292,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7792:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4293,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"7801:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4294,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7805:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4297,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4301,"nodeType":"ExpressionStatement","src":"7782:35:26"},{"expression":{"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4302,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7831:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4303,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7841:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4304,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"7850:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4305,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7854:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4308,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4312,"nodeType":"ExpressionStatement","src":"7831:35:26"},{"expression":{"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4313,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7880:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4314,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7890:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4315,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"7899:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4316,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7903:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4319,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4323,"nodeType":"ExpressionStatement","src":"7880:35:26"},{"expression":{"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4324,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7929:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4325,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7939:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4326,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"7948:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4327,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7952:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4334,"nodeType":"ExpressionStatement","src":"7929:35:26"},{"expression":{"id":4344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7978:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4336,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"7988:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4337,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"7997:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4338,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8001:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4341,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4345,"nodeType":"ExpressionStatement","src":"7978:35:26"},{"expression":{"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4346,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8027:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4347,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8037:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"8046:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4349,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8050:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4352,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4356,"nodeType":"ExpressionStatement","src":"8027:35:26"},{"expression":{"id":4366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4357,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8076:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4358,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8086:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4359,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"8095:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4360,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8099:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4363,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4367,"nodeType":"ExpressionStatement","src":"8076:35:26"},{"expression":{"arguments":[{"id":4369,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8136:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4370,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"8144:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4371,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"8148:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4368,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4050,"src":"8132:3:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8132:23:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4272,"id":4374,"nodeType":"Return","src":"8125:30:26"}]}]},"documentation":{"id":4266,"nodeType":"StructuredDocumentation","src":"6317:208:26","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":4377,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:26","nodeType":"FunctionDefinition","parameters":{"id":4269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4268,"mutability":"mutable","name":"a","nameLocation":"6552:1:26","nodeType":"VariableDeclaration","scope":4377,"src":"6544:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4267,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:26"},"returnParameters":{"id":4272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4377,"src":"6578:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4270,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:26"},"scope":4873,"src":"6530:1642:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4412,"nodeType":"Block","src":"8348:161:26","statements":[{"id":4411,"nodeType":"UncheckedBlock","src":"8358:145:26","statements":[{"assignments":[4389],"declarations":[{"constant":false,"id":4389,"mutability":"mutable","name":"result","nameLocation":"8390:6:26","nodeType":"VariableDeclaration","scope":4411,"src":"8382:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4388,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4393,"initialValue":{"arguments":[{"id":4391,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"8404:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4390,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[4377,4413],"referencedDeclaration":4377,"src":"8399:4:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8399:7:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:26"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4394,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4389,"src":"8427:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4395,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4383,"src":"8437:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4396,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4014,"src":"8449:8:26","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4014_$","typeString":"type(enum Math.Rounding)"}},"id":4397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4012,"src":"8449:11:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"src":"8437:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4399,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4389,"src":"8464:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4400,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4389,"src":"8473:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4402,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"8482:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:26","trueExpression":{"hexValue":"31","id":4405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4387,"id":4410,"nodeType":"Return","src":"8420:72:26"}]}]},"documentation":{"id":4378,"nodeType":"StructuredDocumentation","src":"8178:89:26","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":4413,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:26","nodeType":"FunctionDefinition","parameters":{"id":4384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4380,"mutability":"mutable","name":"a","nameLocation":"8294:1:26","nodeType":"VariableDeclaration","scope":4413,"src":"8286:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4379,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4383,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:26","nodeType":"VariableDeclaration","scope":4413,"src":"8297:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"typeName":{"id":4382,"nodeType":"UserDefinedTypeName","pathNode":{"id":4381,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":4014,"src":"8297:8:26"},"referencedDeclaration":4014,"src":"8297:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:26"},"returnParameters":{"id":4387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4413,"src":"8339:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4385,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:26"},"scope":4873,"src":"8272:237:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4544,"nodeType":"Block","src":"8694:922:26","statements":[{"assignments":[4422],"declarations":[{"constant":false,"id":4422,"mutability":"mutable","name":"result","nameLocation":"8712:6:26","nodeType":"VariableDeclaration","scope":4544,"src":"8704:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4421,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4424,"initialValue":{"hexValue":"30","id":4423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:26"},{"id":4541,"nodeType":"UncheckedBlock","src":"8732:855:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4425,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"8760:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":4426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:26","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4439,"nodeType":"IfStatement","src":"8756:99:26","trueBody":{"id":4438,"nodeType":"Block","src":"8778:77:26","statements":[{"expression":{"id":4432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4430,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"8796:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":4431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:26","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4433,"nodeType":"ExpressionStatement","src":"8796:13:26"},{"expression":{"id":4436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4434,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"8827:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":4435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:26","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4437,"nodeType":"ExpressionStatement","src":"8827:13:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4440,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"8872:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":4441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4454,"nodeType":"IfStatement","src":"8868:96:26","trueBody":{"id":4453,"nodeType":"Block","src":"8889:75:26","statements":[{"expression":{"id":4447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"8907:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":4446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4448,"nodeType":"ExpressionStatement","src":"8907:12:26"},{"expression":{"id":4451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4449,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"8937:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":4450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4452,"nodeType":"ExpressionStatement","src":"8937:12:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4455,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"8981:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":4456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4469,"nodeType":"IfStatement","src":"8977:96:26","trueBody":{"id":4468,"nodeType":"Block","src":"8998:75:26","statements":[{"expression":{"id":4462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4460,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9016:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":4461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4463,"nodeType":"ExpressionStatement","src":"9016:12:26"},{"expression":{"id":4466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4464,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"9046:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4467,"nodeType":"ExpressionStatement","src":"9046:12:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9090:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":4471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4484,"nodeType":"IfStatement","src":"9086:96:26","trueBody":{"id":4483,"nodeType":"Block","src":"9107:75:26","statements":[{"expression":{"id":4477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4475,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9125:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":4476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4478,"nodeType":"ExpressionStatement","src":"9125:12:26"},{"expression":{"id":4481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4479,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"9155:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4482,"nodeType":"ExpressionStatement","src":"9155:12:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4485,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9199:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":4486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4499,"nodeType":"IfStatement","src":"9195:93:26","trueBody":{"id":4498,"nodeType":"Block","src":"9215:73:26","statements":[{"expression":{"id":4492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4490,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9233:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":4491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4493,"nodeType":"ExpressionStatement","src":"9233:11:26"},{"expression":{"id":4496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4494,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"9262:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4497,"nodeType":"ExpressionStatement","src":"9262:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9305:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":4501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4514,"nodeType":"IfStatement","src":"9301:93:26","trueBody":{"id":4513,"nodeType":"Block","src":"9321:73:26","statements":[{"expression":{"id":4507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4505,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9339:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":4506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4508,"nodeType":"ExpressionStatement","src":"9339:11:26"},{"expression":{"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4509,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"9368:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4512,"nodeType":"ExpressionStatement","src":"9368:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9411:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":4516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4529,"nodeType":"IfStatement","src":"9407:93:26","trueBody":{"id":4528,"nodeType":"Block","src":"9427:73:26","statements":[{"expression":{"id":4522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4520,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9445:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":4521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4523,"nodeType":"ExpressionStatement","src":"9445:11:26"},{"expression":{"id":4526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4524,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"9474:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4527,"nodeType":"ExpressionStatement","src":"9474:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4530,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"9517:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4540,"nodeType":"IfStatement","src":"9513:64:26","trueBody":{"id":4539,"nodeType":"Block","src":"9533:44:26","statements":[{"expression":{"id":4537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4535,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"9551:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4538,"nodeType":"ExpressionStatement","src":"9551:11:26"}]}}]},{"expression":{"id":4542,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"9603:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4420,"id":4543,"nodeType":"Return","src":"9596:13:26"}]},"documentation":{"id":4414,"nodeType":"StructuredDocumentation","src":"8515:113:26","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":4545,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:26","nodeType":"FunctionDefinition","parameters":{"id":4417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4416,"mutability":"mutable","name":"value","nameLocation":"8655:5:26","nodeType":"VariableDeclaration","scope":4545,"src":"8647:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4415,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:26"},"returnParameters":{"id":4420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4545,"src":"8685:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4418,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:26"},"scope":4873,"src":"8633:983:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4580,"nodeType":"Block","src":"9849:165:26","statements":[{"id":4579,"nodeType":"UncheckedBlock","src":"9859:149:26","statements":[{"assignments":[4557],"declarations":[{"constant":false,"id":4557,"mutability":"mutable","name":"result","nameLocation":"9891:6:26","nodeType":"VariableDeclaration","scope":4579,"src":"9883:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4556,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4561,"initialValue":{"arguments":[{"id":4559,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"9905:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4558,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4545,4581],"referencedDeclaration":4545,"src":"9900:4:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9900:11:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:26"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4562,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"9932:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"id":4566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4563,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"9942:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4564,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4014,"src":"9954:8:26","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4014_$","typeString":"type(enum Math.Rounding)"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4012,"src":"9954:11:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"src":"9942:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":4568,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"9974:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4570,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"9983:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:26","trueExpression":{"hexValue":"31","id":4573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4576,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4555,"id":4578,"nodeType":"Return","src":"9925:72:26"}]}]},"documentation":{"id":4546,"nodeType":"StructuredDocumentation","src":"9622:142:26","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4581,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:26","nodeType":"FunctionDefinition","parameters":{"id":4552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4548,"mutability":"mutable","name":"value","nameLocation":"9791:5:26","nodeType":"VariableDeclaration","scope":4581,"src":"9783:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4547,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4551,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:26","nodeType":"VariableDeclaration","scope":4581,"src":"9798:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"typeName":{"id":4550,"nodeType":"UserDefinedTypeName","pathNode":{"id":4549,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":4014,"src":"9798:8:26"},"referencedDeclaration":4014,"src":"9798:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:26"},"returnParameters":{"id":4555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4581,"src":"9840:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4553,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:26"},"scope":4873,"src":"9769:245:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4709,"nodeType":"Block","src":"10201:854:26","statements":[{"assignments":[4590],"declarations":[{"constant":false,"id":4590,"mutability":"mutable","name":"result","nameLocation":"10219:6:26","nodeType":"VariableDeclaration","scope":4709,"src":"10211:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4592,"initialValue":{"hexValue":"30","id":4591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:26"},{"id":4706,"nodeType":"UncheckedBlock","src":"10239:787:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10267:5:26","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":4596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:26","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4609,"nodeType":"IfStatement","src":"10263:103:26","trueBody":{"id":4608,"nodeType":"Block","src":"10286:80:26","statements":[{"expression":{"id":4602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10304:5:26","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":4601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:26","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4603,"nodeType":"ExpressionStatement","src":"10304:17:26"},{"expression":{"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4604,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"10339:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":4605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4607,"nodeType":"ExpressionStatement","src":"10339:12:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4610,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10383:5:26","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":4613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:26","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4626,"nodeType":"IfStatement","src":"10379:103:26","trueBody":{"id":4625,"nodeType":"Block","src":"10402:80:26","statements":[{"expression":{"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10420:5:26","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":4618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:26","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4620,"nodeType":"ExpressionStatement","src":"10420:17:26"},{"expression":{"id":4623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4621,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"10455:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4624,"nodeType":"ExpressionStatement","src":"10455:12:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4627,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10499:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:26","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4643,"nodeType":"IfStatement","src":"10495:103:26","trueBody":{"id":4642,"nodeType":"Block","src":"10518:80:26","statements":[{"expression":{"id":4636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4632,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10536:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:26","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4637,"nodeType":"ExpressionStatement","src":"10536:17:26"},{"expression":{"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4638,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"10571:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4641,"nodeType":"ExpressionStatement","src":"10571:12:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4644,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10615:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:26","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4660,"nodeType":"IfStatement","src":"10611:100:26","trueBody":{"id":4659,"nodeType":"Block","src":"10633:78:26","statements":[{"expression":{"id":4653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10651:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:26","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4654,"nodeType":"ExpressionStatement","src":"10651:16:26"},{"expression":{"id":4657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4655,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"10685:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4658,"nodeType":"ExpressionStatement","src":"10685:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10728:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:26","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4677,"nodeType":"IfStatement","src":"10724:100:26","trueBody":{"id":4676,"nodeType":"Block","src":"10746:78:26","statements":[{"expression":{"id":4670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4666,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10764:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:26","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4671,"nodeType":"ExpressionStatement","src":"10764:16:26"},{"expression":{"id":4674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4672,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"10798:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4675,"nodeType":"ExpressionStatement","src":"10798:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10841:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:26","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4694,"nodeType":"IfStatement","src":"10837:100:26","trueBody":{"id":4693,"nodeType":"Block","src":"10859:78:26","statements":[{"expression":{"id":4687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4683,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10877:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:26","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4688,"nodeType":"ExpressionStatement","src":"10877:16:26"},{"expression":{"id":4691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4689,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"10911:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4692,"nodeType":"ExpressionStatement","src":"10911:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4695,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"10954:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":4698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":4697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4705,"nodeType":"IfStatement","src":"10950:66:26","trueBody":{"id":4704,"nodeType":"Block","src":"10972:44:26","statements":[{"expression":{"id":4702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4700,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"10990:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4703,"nodeType":"ExpressionStatement","src":"10990:11:26"}]}}]},{"expression":{"id":4707,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"11042:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4588,"id":4708,"nodeType":"Return","src":"11035:13:26"}]},"documentation":{"id":4582,"nodeType":"StructuredDocumentation","src":"10020:114:26","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":4710,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:26","nodeType":"FunctionDefinition","parameters":{"id":4585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4584,"mutability":"mutable","name":"value","nameLocation":"10162:5:26","nodeType":"VariableDeclaration","scope":4710,"src":"10154:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4583,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:26"},"returnParameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4710,"src":"10192:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4586,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:26"},"scope":4873,"src":"10139:916:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4745,"nodeType":"Block","src":"11290:167:26","statements":[{"id":4744,"nodeType":"UncheckedBlock","src":"11300:151:26","statements":[{"assignments":[4722],"declarations":[{"constant":false,"id":4722,"mutability":"mutable","name":"result","nameLocation":"11332:6:26","nodeType":"VariableDeclaration","scope":4744,"src":"11324:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4721,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4726,"initialValue":{"arguments":[{"id":4724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4713,"src":"11347:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4723,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[4710,4746],"referencedDeclaration":4710,"src":"11341:5:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11341:12:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:26"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4727,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"11374:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"id":4731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4728,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4716,"src":"11384:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4729,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4014,"src":"11396:8:26","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4014_$","typeString":"type(enum Math.Rounding)"}},"id":4730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4012,"src":"11396:11:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"src":"11384:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":4733,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"11417:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4735,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4713,"src":"11426:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:26","trueExpression":{"hexValue":"31","id":4738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4741,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4720,"id":4743,"nodeType":"Return","src":"11367:73:26"}]}]},"documentation":{"id":4711,"nodeType":"StructuredDocumentation","src":"11061:143:26","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4746,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:26","nodeType":"FunctionDefinition","parameters":{"id":4717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4713,"mutability":"mutable","name":"value","nameLocation":"11232:5:26","nodeType":"VariableDeclaration","scope":4746,"src":"11224:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4712,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4716,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:26","nodeType":"VariableDeclaration","scope":4746,"src":"11239:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"typeName":{"id":4715,"nodeType":"UserDefinedTypeName","pathNode":{"id":4714,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":4014,"src":"11239:8:26"},"referencedDeclaration":4014,"src":"11239:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:26"},"returnParameters":{"id":4720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4746,"src":"11281:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4718,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:26"},"scope":4873,"src":"11209:248:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4832,"nodeType":"Block","src":"11771:600:26","statements":[{"assignments":[4755],"declarations":[{"constant":false,"id":4755,"mutability":"mutable","name":"result","nameLocation":"11789:6:26","nodeType":"VariableDeclaration","scope":4832,"src":"11781:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4754,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4757,"initialValue":{"hexValue":"30","id":4756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:26"},{"id":4829,"nodeType":"UncheckedBlock","src":"11809:533:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4758,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"11837:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":4759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:26","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4772,"nodeType":"IfStatement","src":"11833:98:26","trueBody":{"id":4771,"nodeType":"Block","src":"11855:76:26","statements":[{"expression":{"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4763,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"11873:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":4764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:26","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4766,"nodeType":"ExpressionStatement","src":"11873:13:26"},{"expression":{"id":4769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4767,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"11904:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4770,"nodeType":"ExpressionStatement","src":"11904:12:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4773,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"11948:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":4774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4787,"nodeType":"IfStatement","src":"11944:95:26","trueBody":{"id":4786,"nodeType":"Block","src":"11965:74:26","statements":[{"expression":{"id":4780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"11983:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":4779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:26","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4781,"nodeType":"ExpressionStatement","src":"11983:12:26"},{"expression":{"id":4784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4782,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"12013:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4785,"nodeType":"ExpressionStatement","src":"12013:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"12056:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":4789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4802,"nodeType":"IfStatement","src":"12052:95:26","trueBody":{"id":4801,"nodeType":"Block","src":"12073:74:26","statements":[{"expression":{"id":4795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"12091:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":4794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:26","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4796,"nodeType":"ExpressionStatement","src":"12091:12:26"},{"expression":{"id":4799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4797,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"12121:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4800,"nodeType":"ExpressionStatement","src":"12121:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4803,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"12164:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":4804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4817,"nodeType":"IfStatement","src":"12160:95:26","trueBody":{"id":4816,"nodeType":"Block","src":"12181:74:26","statements":[{"expression":{"id":4810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"12199:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":4809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:26","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4811,"nodeType":"ExpressionStatement","src":"12199:12:26"},{"expression":{"id":4814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4812,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"12229:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4815,"nodeType":"ExpressionStatement","src":"12229:11:26"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4818,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"12272:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":4819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:26","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4828,"nodeType":"IfStatement","src":"12268:64:26","trueBody":{"id":4827,"nodeType":"Block","src":"12288:44:26","statements":[{"expression":{"id":4825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4823,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"12306:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4826,"nodeType":"ExpressionStatement","src":"12306:11:26"}]}}]},{"expression":{"id":4830,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"12358:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4753,"id":4831,"nodeType":"Return","src":"12351:13:26"}]},"documentation":{"id":4747,"nodeType":"StructuredDocumentation","src":"11463:240:26","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":4833,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:26","nodeType":"FunctionDefinition","parameters":{"id":4750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4749,"mutability":"mutable","name":"value","nameLocation":"11732:5:26","nodeType":"VariableDeclaration","scope":4833,"src":"11724:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4748,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:26"},"returnParameters":{"id":4753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4833,"src":"11762:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4751,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:26"},"scope":4873,"src":"11708:663:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4871,"nodeType":"Block","src":"12608:174:26","statements":[{"id":4870,"nodeType":"UncheckedBlock","src":"12618:158:26","statements":[{"assignments":[4845],"declarations":[{"constant":false,"id":4845,"mutability":"mutable","name":"result","nameLocation":"12650:6:26","nodeType":"VariableDeclaration","scope":4870,"src":"12642:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4844,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4849,"initialValue":{"arguments":[{"id":4847,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"12666:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4846,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[4833,4872],"referencedDeclaration":4833,"src":"12659:6:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12659:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:26"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4850,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"12693:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"id":4854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4851,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4839,"src":"12703:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4852,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4014,"src":"12715:8:26","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4014_$","typeString":"type(enum Math.Rounding)"}},"id":4853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4012,"src":"12715:11:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"src":"12703:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:26","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":4858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4856,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"12736:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":4857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:26","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4861,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"12751:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:26","trueExpression":{"hexValue":"31","id":4864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4867,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4843,"id":4869,"nodeType":"Return","src":"12686:79:26"}]}]},"documentation":{"id":4834,"nodeType":"StructuredDocumentation","src":"12377:144:26","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4872,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:26","nodeType":"FunctionDefinition","parameters":{"id":4840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4836,"mutability":"mutable","name":"value","nameLocation":"12550:5:26","nodeType":"VariableDeclaration","scope":4872,"src":"12542:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4835,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4839,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:26","nodeType":"VariableDeclaration","scope":4872,"src":"12557:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"},"typeName":{"id":4838,"nodeType":"UserDefinedTypeName","pathNode":{"id":4837,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":4014,"src":"12557:8:26"},"referencedDeclaration":4014,"src":"12557:8:26","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4014","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:26"},"returnParameters":{"id":4843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4872,"src":"12599:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4841,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:26"},"scope":4873,"src":"12526:256:26","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4874,"src":"202:12582:26","usedErrors":[]}],"src":"103:12682:26"},"id":26},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[4978]},"id":4979,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4875,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:27"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":4876,"nodeType":"StructuredDocumentation","src":"134:80:27","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4978,"linearizedBaseContracts":[4978],"name":"SignedMath","nameLocation":"223:10:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":4893,"nodeType":"Block","src":"375:37:27","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4886,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"392:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4887,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"396:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4890,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"404:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:27","trueExpression":{"id":4889,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"400:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":4885,"id":4892,"nodeType":"Return","src":"385:20:27"}]},"documentation":{"id":4877,"nodeType":"StructuredDocumentation","src":"240:66:27","text":" @dev Returns the largest of two signed numbers."},"id":4894,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:27","nodeType":"FunctionDefinition","parameters":{"id":4882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4879,"mutability":"mutable","name":"a","nameLocation":"331:1:27","nodeType":"VariableDeclaration","scope":4894,"src":"324:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4878,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":4881,"mutability":"mutable","name":"b","nameLocation":"341:1:27","nodeType":"VariableDeclaration","scope":4894,"src":"334:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4880,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:27"},"returnParameters":{"id":4885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4894,"src":"367:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4883,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:27"},"scope":4978,"src":"311:101:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4911,"nodeType":"Block","src":"554:37:27","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4904,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4897,"src":"571:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4905,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4899,"src":"575:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4908,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4899,"src":"583:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:27","trueExpression":{"id":4907,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4897,"src":"579:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":4903,"id":4910,"nodeType":"Return","src":"564:20:27"}]},"documentation":{"id":4895,"nodeType":"StructuredDocumentation","src":"418:67:27","text":" @dev Returns the smallest of two signed numbers."},"id":4912,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:27","nodeType":"FunctionDefinition","parameters":{"id":4900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4897,"mutability":"mutable","name":"a","nameLocation":"510:1:27","nodeType":"VariableDeclaration","scope":4912,"src":"503:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4896,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":4899,"mutability":"mutable","name":"b","nameLocation":"520:1:27","nodeType":"VariableDeclaration","scope":4912,"src":"513:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4898,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:27"},"returnParameters":{"id":4903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4902,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4912,"src":"546:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4901,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:27"},"scope":4978,"src":"490:101:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4955,"nodeType":"Block","src":"796:162:27","statements":[{"assignments":[4923],"declarations":[{"constant":false,"id":4923,"mutability":"mutable","name":"x","nameLocation":"865:1:27","nodeType":"VariableDeclaration","scope":4955,"src":"858:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4922,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":4936,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4924,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4915,"src":"870:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4925,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4917,"src":"874:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4928,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4915,"src":"881:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4929,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4917,"src":"885:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4931,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4934,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:27"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4937,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4923,"src":"910:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4942,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4923,"src":"930:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4940,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:27","typeDescriptions":{}}},"id":4943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"922:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":4944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:27","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":4938,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:27","typeDescriptions":{}}},"id":4946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"915:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4947,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4915,"src":"944:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4948,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4917,"src":"948:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":4921,"id":4954,"nodeType":"Return","src":"903:48:27"}]},"documentation":{"id":4913,"nodeType":"StructuredDocumentation","src":"597:126:27","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":4956,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:27","nodeType":"FunctionDefinition","parameters":{"id":4918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4915,"mutability":"mutable","name":"a","nameLocation":"752:1:27","nodeType":"VariableDeclaration","scope":4956,"src":"745:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4914,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":4917,"mutability":"mutable","name":"b","nameLocation":"762:1:27","nodeType":"VariableDeclaration","scope":4956,"src":"755:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4916,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:27"},"returnParameters":{"id":4921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4956,"src":"788:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4919,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:27"},"scope":4978,"src":"728:230:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4976,"nodeType":"Block","src":"1102:158:27","statements":[{"id":4975,"nodeType":"UncheckedBlock","src":"1112:142:27","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4966,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"1227:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":4967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:27","subExpression":{"id":4970,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"1241:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:27","trueExpression":{"id":4969,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"1236:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4964,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:27","typeDescriptions":{}}},"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1219:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4963,"id":4974,"nodeType":"Return","src":"1212:31:27"}]}]},"documentation":{"id":4957,"nodeType":"StructuredDocumentation","src":"964:78:27","text":" @dev Returns the absolute unsigned value of a signed value."},"id":4977,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:27","nodeType":"FunctionDefinition","parameters":{"id":4960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4959,"mutability":"mutable","name":"n","nameLocation":"1067:1:27","nodeType":"VariableDeclaration","scope":4977,"src":"1060:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4958,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:27"},"returnParameters":{"id":4963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4977,"src":"1093:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:27"},"scope":4978,"src":"1047:213:27","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4979,"src":"215:1047:27","usedErrors":[]}],"src":"109:1154:27"},"id":27},"@thirdweb-dev/contracts/forwarder/Forwarder.sol":{"ast":{"absolutePath":"@thirdweb-dev/contracts/forwarder/Forwarder.sol","exportedSymbols":{"ECDSA":[3764],"EIP712":[3968],"Forwarder":[5172],"IERC5267":[2322],"Math":[4873],"ShortString":[2848],"ShortStrings":[3059],"SignedMath":[4978],"StorageSlot":[3169],"Strings":[3398]},"id":5173,"license":"Apache 2.0","nodeType":"SourceUnit","nodes":[{"id":4980,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"39:23:28"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":4981,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5173,"sourceUnit":3765,"src":"726:62:28","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","file":"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol","id":4982,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5173,"sourceUnit":3972,"src":"789:69:28","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4983,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":3968,"src":"925:6:28"},"id":4984,"nodeType":"InheritanceSpecifier","src":"925:6:28"}],"canonicalName":"Forwarder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":5172,"linearizedBaseContracts":[5172,3968,2322],"name":"Forwarder","nameLocation":"912:9:28","nodeType":"ContractDefinition","nodes":[{"global":false,"id":4987,"libraryName":{"id":4985,"name":"ECDSA","nodeType":"IdentifierPath","referencedDeclaration":3764,"src":"944:5:28"},"nodeType":"UsingForDirective","src":"938:24:28","typeName":{"id":4986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"954:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"canonicalName":"Forwarder.ForwardRequest","id":5000,"members":[{"constant":false,"id":4989,"mutability":"mutable","name":"from","nameLocation":"1008:4:28","nodeType":"VariableDeclaration","scope":5000,"src":"1000:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4988,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4991,"mutability":"mutable","name":"to","nameLocation":"1030:2:28","nodeType":"VariableDeclaration","scope":5000,"src":"1022:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4990,"name":"address","nodeType":"ElementaryTypeName","src":"1022:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4993,"mutability":"mutable","name":"value","nameLocation":"1050:5:28","nodeType":"VariableDeclaration","scope":5000,"src":"1042:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4992,"name":"uint256","nodeType":"ElementaryTypeName","src":"1042:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4995,"mutability":"mutable","name":"gas","nameLocation":"1073:3:28","nodeType":"VariableDeclaration","scope":5000,"src":"1065:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4994,"name":"uint256","nodeType":"ElementaryTypeName","src":"1065:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4997,"mutability":"mutable","name":"nonce","nameLocation":"1094:5:28","nodeType":"VariableDeclaration","scope":5000,"src":"1086:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1086:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4999,"mutability":"mutable","name":"data","nameLocation":"1115:4:28","nodeType":"VariableDeclaration","scope":5000,"src":"1109:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4998,"name":"bytes","nodeType":"ElementaryTypeName","src":"1109:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ForwardRequest","nameLocation":"975:14:28","nodeType":"StructDefinition","scope":5172,"src":"968:158:28","visibility":"public"},{"constant":true,"id":5005,"mutability":"constant","name":"TYPEHASH","nameLocation":"1157:8:28","nodeType":"VariableDeclaration","scope":5172,"src":"1132:147:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1132:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"466f72776172645265717565737428616464726573732066726f6d2c6164647265737320746f2c75696e743235362076616c75652c75696e74323536206761732c75696e74323536206e6f6e63652c6279746573206461746129","id":5003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1186:92:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e48","typeString":"literal_string \"ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)\""},"value":"ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e48","typeString":"literal_string \"ForwardRequest(address from,address to,uint256 value,uint256 gas,uint256 nonce,bytes data)\""}],"id":5002,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1176:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1176:103:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":5009,"mutability":"mutable","name":"_nonces","nameLocation":"1322:7:28","nodeType":"VariableDeclaration","scope":5172,"src":"1286:43:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5008,"keyType":{"id":5006,"name":"address","nodeType":"ElementaryTypeName","src":"1294:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1286:27:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":5007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1305:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"body":{"id":5016,"nodeType":"Block","src":"1385:2:28","statements":[]},"id":5017,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"47534e763220466f72776172646572","id":5012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1357:17:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c9c579ca0d993f7c2d25818372353ab1d6abb72d19f803687d19c75043ce92a","typeString":"literal_string \"GSNv2 Forwarder\""},"value":"GSNv2 Forwarder"},{"hexValue":"302e302e31","id":5013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1376:7:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885","typeString":"literal_string \"0.0.1\""},"value":"0.0.1"}],"id":5014,"kind":"baseConstructorSpecifier","modifierName":{"id":5011,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":3968,"src":"1350:6:28"},"nodeType":"ModifierInvocation","src":"1350:34:28"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5010,"nodeType":"ParameterList","parameters":[],"src":"1347:2:28"},"returnParameters":{"id":5015,"nodeType":"ParameterList","parameters":[],"src":"1385:0:28"},"scope":5172,"src":"1336:51:28","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5028,"nodeType":"Block","src":"1455:37:28","statements":[{"expression":{"baseExpression":{"id":5024,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5009,"src":"1472:7:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5026,"indexExpression":{"id":5025,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5019,"src":"1480:4:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1472:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5023,"id":5027,"nodeType":"Return","src":"1465:20:28"}]},"functionSelector":"2d0335ab","id":5029,"implemented":true,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"1402:8:28","nodeType":"FunctionDefinition","parameters":{"id":5020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5019,"mutability":"mutable","name":"from","nameLocation":"1419:4:28","nodeType":"VariableDeclaration","scope":5029,"src":"1411:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5018,"name":"address","nodeType":"ElementaryTypeName","src":"1411:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1410:14:28"},"returnParameters":{"id":5023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5022,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5029,"src":"1446:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5021,"name":"uint256","nodeType":"ElementaryTypeName","src":"1446:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1445:9:28"},"scope":5172,"src":"1393:99:28","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":5080,"nodeType":"Block","src":"1596:264:28","statements":[{"assignments":[5040],"declarations":[{"constant":false,"id":5040,"mutability":"mutable","name":"signer","nameLocation":"1614:6:28","nodeType":"VariableDeclaration","scope":5080,"src":"1606:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5039,"name":"address","nodeType":"ElementaryTypeName","src":"1606:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5066,"initialValue":{"arguments":[{"id":5064,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5034,"src":"1773:9:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"arguments":[{"arguments":[{"id":5045,"name":"TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"1674:8:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5046,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1684:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"from","nodeType":"MemberAccess","referencedDeclaration":4989,"src":"1684:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5048,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1694:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"to","nodeType":"MemberAccess","referencedDeclaration":4991,"src":"1694:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5050,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1702:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4993,"src":"1702:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5052,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1713:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":4995,"src":"1713:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5054,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1722:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":4997,"src":"1722:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":5057,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1743:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":4999,"src":"1743:8:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5056,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1733:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1733:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"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_bytes32","typeString":"bytes32"}],"expression":{"id":5043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1663:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1663:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1663:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5042,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1653:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1653:101:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5041,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"1623:16:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1623:141:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":3525,"src":"1623:149:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":5065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1623:160:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1606:177:28"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5067,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5009,"src":"1801:7:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5070,"indexExpression":{"expression":{"id":5068,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1809:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"from","nodeType":"MemberAccess","referencedDeclaration":4989,"src":"1809:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1801:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5071,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1822:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":4997,"src":"1822:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1801:30:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5074,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5040,"src":"1835:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5075,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5032,"src":"1845:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"from","nodeType":"MemberAccess","referencedDeclaration":4989,"src":"1845:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1835:18:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1801:52:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5038,"id":5079,"nodeType":"Return","src":"1794:59:28"}]},"functionSelector":"bf5d3bdb","id":5081,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1507:6:28","nodeType":"FunctionDefinition","parameters":{"id":5035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5032,"mutability":"mutable","name":"req","nameLocation":"1538:3:28","nodeType":"VariableDeclaration","scope":5081,"src":"1514:27:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest"},"typeName":{"id":5031,"nodeType":"UserDefinedTypeName","pathNode":{"id":5030,"name":"ForwardRequest","nodeType":"IdentifierPath","referencedDeclaration":5000,"src":"1514:14:28"},"referencedDeclaration":5000,"src":"1514:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_storage_ptr","typeString":"struct Forwarder.ForwardRequest"}},"visibility":"internal"},{"constant":false,"id":5034,"mutability":"mutable","name":"signature","nameLocation":"1558:9:28","nodeType":"VariableDeclaration","scope":5081,"src":"1543:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5033,"name":"bytes","nodeType":"ElementaryTypeName","src":"1543:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1513:55:28"},"returnParameters":{"id":5038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5081,"src":"1590:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5036,"name":"bool","nodeType":"ElementaryTypeName","src":"1590:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1589:6:28"},"scope":5172,"src":"1498:362:28","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":5170,"nodeType":"Block","src":"2010:825:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":5095,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2035:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},{"id":5096,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5086,"src":"2040:9:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5094,"name":"verify","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5081,"src":"2028:6:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ForwardRequest_$5000_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Forwarder.ForwardRequest calldata,bytes calldata) view returns (bool)"}},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2028:22:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d696e696d616c466f727761726465723a207369676e617475726520646f6573206e6f74206d617463682072657175657374","id":5098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2052:52:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae","typeString":"literal_string \"MinimalForwarder: signature does not match request\""},"value":"MinimalForwarder: signature does not match request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae","typeString":"literal_string \"MinimalForwarder: signature does not match request\""}],"id":5093,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:85:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5100,"nodeType":"ExpressionStatement","src":"2020:85:28"},{"expression":{"id":5109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5101,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5009,"src":"2115:7:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5104,"indexExpression":{"expression":{"id":5102,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2123:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"from","nodeType":"MemberAccess","referencedDeclaration":4989,"src":"2123:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2115:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5105,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2135:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":4997,"src":"2135:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2147:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2135:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2115:33:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5110,"nodeType":"ExpressionStatement","src":"2115:33:28"},{"assignments":[5112,5114],"declarations":[{"constant":false,"id":5112,"mutability":"mutable","name":"success","nameLocation":"2224:7:28","nodeType":"VariableDeclaration","scope":5170,"src":"2219:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5111,"name":"bool","nodeType":"ElementaryTypeName","src":"2219:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5114,"mutability":"mutable","name":"result","nameLocation":"2246:6:28","nodeType":"VariableDeclaration","scope":5170,"src":"2233:19:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5113,"name":"bytes","nodeType":"ElementaryTypeName","src":"2233:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5131,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":5125,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2332:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":4999,"src":"2332:8:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":5127,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2342:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"from","nodeType":"MemberAccess","referencedDeclaration":4989,"src":"2342:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2315:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2315:16:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2315:36:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":5115,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2256:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"to","nodeType":"MemberAccess","referencedDeclaration":4991,"src":"2256:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2256: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":5122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":5118,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2274:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":4995,"src":"2274:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5120,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2290:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4993,"src":"2290:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2256:45:28","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2256:105:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2218:143:28"},{"condition":{"id":5133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2376:8:28","subExpression":{"id":5132,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5112,"src":"2377:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5155,"nodeType":"IfStatement","src":"2372:309:28","trueBody":{"id":5154,"nodeType":"Block","src":"2386:295:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5134,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"2480:6:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2480:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3638","id":5136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2496:2:28","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"2480:18:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5142,"nodeType":"IfStatement","src":"2476:63:28","trueBody":{"expression":{"arguments":[{"hexValue":"5472616e73616374696f6e2072657665727465642073696c656e746c79","id":5139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2507:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0b1e7612ebe87924453e5d4581b9067879655587bae8a2dfee438433699b890","typeString":"literal_string \"Transaction reverted silently\""},"value":"Transaction reverted silently"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d0b1e7612ebe87924453e5d4581b9067879655587bae8a2dfee438433699b890","typeString":"literal_string \"Transaction reverted silently\""}],"id":5138,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2500:6:28","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2500:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5141,"nodeType":"ExpressionStatement","src":"2500:39:28"}},{"AST":{"nodeType":"YulBlock","src":"2562:59:28","statements":[{"nodeType":"YulAssignment","src":"2580:27:28","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"2594:6:28"},{"kind":"number","nodeType":"YulLiteral","src":"2602:4:28","type":"","value":"0x04"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2590:3:28"},"nodeType":"YulFunctionCall","src":"2590:17:28"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2580:6:28"}]}]},"evmVersion":"london","externalReferences":[{"declaration":5114,"isOffset":false,"isSlot":false,"src":"2580:6:28","valueSize":1},{"declaration":5114,"isOffset":false,"isSlot":false,"src":"2594:6:28","valueSize":1}],"id":5143,"nodeType":"InlineAssembly","src":"2553:68:28"},{"expression":{"arguments":[{"arguments":[{"id":5147,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"2652:6:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2661:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5148,"name":"string","nodeType":"ElementaryTypeName","src":"2661:6:28","typeDescriptions":{}}}],"id":5150,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2660:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":5145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2641:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2641:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2641:28:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5144,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2634:6:28","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2634:36:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5153,"nodeType":"ExpressionStatement","src":"2634:36:28"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5157,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"2769:7:28","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2769:9:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5159,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"2781:3:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest calldata"}},"id":5160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":4995,"src":"2781:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3633","id":5161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2791:2:28","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"63"},"src":"2781:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2769:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5156,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2762:6:28","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2762:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5165,"nodeType":"ExpressionStatement","src":"2762:32:28"},{"expression":{"components":[{"id":5166,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5112,"src":"2812:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5167,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"2821:6:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":5168,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2811:17:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":5092,"id":5169,"nodeType":"Return","src":"2804:24:28"}]},"functionSelector":"47153f82","id":5171,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"1875:7:28","nodeType":"FunctionDefinition","parameters":{"id":5087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5084,"mutability":"mutable","name":"req","nameLocation":"1907:3:28","nodeType":"VariableDeclaration","scope":5171,"src":"1883:27:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_calldata_ptr","typeString":"struct Forwarder.ForwardRequest"},"typeName":{"id":5083,"nodeType":"UserDefinedTypeName","pathNode":{"id":5082,"name":"ForwardRequest","nodeType":"IdentifierPath","referencedDeclaration":5000,"src":"1883:14:28"},"referencedDeclaration":5000,"src":"1883:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_ForwardRequest_$5000_storage_ptr","typeString":"struct Forwarder.ForwardRequest"}},"visibility":"internal"},{"constant":false,"id":5086,"mutability":"mutable","name":"signature","nameLocation":"1927:9:28","nodeType":"VariableDeclaration","scope":5171,"src":"1912:24:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5085,"name":"bytes","nodeType":"ElementaryTypeName","src":"1912:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1882:55:28"},"returnParameters":{"id":5092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5171,"src":"1986:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5088,"name":"bool","nodeType":"ElementaryTypeName","src":"1986:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5171,"src":"1992:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5090,"name":"bytes","nodeType":"ElementaryTypeName","src":"1992:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1985:20:28"},"scope":5172,"src":"1866:969:28","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":5173,"src":"903:1934:28","usedErrors":[2856,2858]}],"src":"39:2799:28"},"id":28},"contracts/ChugSplashClaimer.sol":{"ast":{"absolutePath":"contracts/ChugSplashClaimer.sol","exportedSymbols":{"ChugSplashClaimer":[5492],"ChugSplashRegistry":[8652],"CrossChainMessageInfo":[5560],"ICrossChainAdapter":[9823],"Ownable":[2297],"RegistrationInfo":[5575],"Version":[5567]},"id":5493,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5174,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:29"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":5176,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5493,"sourceUnit":2298,"src":"58:69:29","symbolAliases":[{"foreign":{"id":5175,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"67:7:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICrossChainAdapter.sol","file":"./interfaces/ICrossChainAdapter.sol","id":5178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5493,"sourceUnit":9824,"src":"128:73:29","symbolAliases":[{"foreign":{"id":5177,"name":"ICrossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"137:18:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashRegistry.sol","file":"./ChugSplashRegistry.sol","id":5180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5493,"sourceUnit":8653,"src":"202:62:29","symbolAliases":[{"foreign":{"id":5179,"name":"ChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"211:18:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"./ChugSplashDataTypes.sol","id":5184,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5493,"sourceUnit":5617,"src":"265:93:29","symbolAliases":[{"foreign":{"id":5181,"name":"Version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"274:7:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5182,"name":"RegistrationInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"283:16:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5183,"name":"CrossChainMessageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5560,"src":"301:21:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5186,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":2297,"src":"426:7:29"},"id":5187,"nodeType":"InheritanceSpecifier","src":"426:7:29"}],"canonicalName":"ChugSplashClaimer","contractDependencies":[],"contractKind":"contract","documentation":{"id":5185,"nodeType":"StructuredDocumentation","src":"360:35:29","text":" @title ChugSplashClaimer"},"fullyImplemented":true,"id":5492,"linearizedBaseContracts":[5492,2297,2843],"name":"ChugSplashClaimer","nameLocation":"405:17:29","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"d707f574bf0f880d3c188892d3bf504e65df6d41b7e7a0ffaad280c33accb57f","id":5193,"name":"OrganizationIDClaimed","nameLocation":"446:21:29","nodeType":"EventDefinition","parameters":{"id":5192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5189,"indexed":true,"mutability":"mutable","name":"orgID","nameLocation":"484:5:29","nodeType":"VariableDeclaration","scope":5193,"src":"468:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"468:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5191,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"499:5:29","nodeType":"VariableDeclaration","scope":5193,"src":"491:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5190,"name":"address","nodeType":"ElementaryTypeName","src":"491:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"467:38:29"},"src":"440:66:29"},{"anonymous":false,"eventSelector":"c5d417aa2205a71cce03a5afb0dcdc12632d4e1a11f9c5a7290c8169963b983e","id":5205,"name":"RegistrationInitiated","nameLocation":"518:21:29","nodeType":"EventDefinition","parameters":{"id":5204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5195,"indexed":true,"mutability":"mutable","name":"orgID","nameLocation":"565:5:29","nodeType":"VariableDeclaration","scope":5205,"src":"549:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5197,"indexed":true,"mutability":"mutable","name":"originEndpoint","nameLocation":"596:14:29","nodeType":"VariableDeclaration","scope":5205,"src":"580:30:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5196,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5199,"indexed":true,"mutability":"mutable","name":"destDomainID","nameLocation":"635:12:29","nodeType":"VariableDeclaration","scope":5205,"src":"620:27:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5198,"name":"uint32","nodeType":"ElementaryTypeName","src":"620:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":5201,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"665:5:29","nodeType":"VariableDeclaration","scope":5205,"src":"657:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5200,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5203,"indexed":false,"mutability":"mutable","name":"caller","nameLocation":"688:6:29","nodeType":"VariableDeclaration","scope":5205,"src":"680:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5202,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"539:161:29"},"src":"512:189:29"},{"anonymous":false,"eventSelector":"48dd4ae3ca6e1a6c3202c325c2e839ad733c03ad39a1a9b20cbe71c341970086","id":5213,"name":"InitiatorApprovalChanged","nameLocation":"713:24:29","nodeType":"EventDefinition","parameters":{"id":5212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5207,"indexed":true,"mutability":"mutable","name":"orgID","nameLocation":"754:5:29","nodeType":"VariableDeclaration","scope":5213,"src":"738:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"738:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5209,"indexed":true,"mutability":"mutable","name":"initiator","nameLocation":"777:9:29","nodeType":"VariableDeclaration","scope":5213,"src":"761:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5208,"name":"address","nodeType":"ElementaryTypeName","src":"761:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5211,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"793:8:29","nodeType":"VariableDeclaration","scope":5213,"src":"788:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5210,"name":"bool","nodeType":"ElementaryTypeName","src":"788:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"737:65:29"},"src":"707:96:29"},{"anonymous":false,"eventSelector":"0738786373dbde79111483bbfffcaf997c7d56a541572ec2e6f110d3a3e0dbb4","id":5221,"name":"CrossChainAdapterChanged","nameLocation":"815:24:29","nodeType":"EventDefinition","parameters":{"id":5220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5215,"indexed":true,"mutability":"mutable","name":"originEndpoint","nameLocation":"865:14:29","nodeType":"VariableDeclaration","scope":5221,"src":"849:30:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5214,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5217,"indexed":true,"mutability":"mutable","name":"destDomainID","nameLocation":"904:12:29","nodeType":"VariableDeclaration","scope":5221,"src":"889:27:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5216,"name":"uint32","nodeType":"ElementaryTypeName","src":"889:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":5219,"indexed":false,"mutability":"mutable","name":"crossChainAdapter","nameLocation":"934:17:29","nodeType":"VariableDeclaration","scope":5221,"src":"926:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5218,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"839:118:29"},"src":"809:149:29"},{"constant":false,"functionSelector":"7b103999","id":5224,"mutability":"immutable","name":"registry","nameLocation":"1000:8:29","nodeType":"VariableDeclaration","scope":5492,"src":"964:44:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},"typeName":{"id":5223,"nodeType":"UserDefinedTypeName","pathNode":{"id":5222,"name":"ChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":8652,"src":"964:18:29"},"referencedDeclaration":8652,"src":"964:18:29","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"visibility":"public"},{"constant":false,"functionSelector":"0ce22b63","id":5228,"mutability":"mutable","name":"organizationIDs","nameLocation":"1047:15:29","nodeType":"VariableDeclaration","scope":5492,"src":"1015:47:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":5227,"keyType":{"id":5225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1023:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1015:24:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":5226,"name":"bool","nodeType":"ElementaryTypeName","src":"1034:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"385afac3","id":5232,"mutability":"mutable","name":"orgIDOwners","nameLocation":"1104:11:29","nodeType":"VariableDeclaration","scope":5492,"src":"1069:46:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":5231,"keyType":{"id":5229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1077:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1069:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":5230,"name":"address","nodeType":"ElementaryTypeName","src":"1088:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"d73e879f","id":5238,"mutability":"mutable","name":"approvedInitiators","nameLocation":"1174:18:29","nodeType":"VariableDeclaration","scope":5492,"src":"1122:70:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes32 => mapping(address => bool))"},"typeName":{"id":5237,"keyType":{"id":5233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1130:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1122:44:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes32 => mapping(address => bool))"},"valueType":{"id":5236,"keyType":{"id":5234,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1141:24:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":5235,"name":"bool","nodeType":"ElementaryTypeName","src":"1160:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"constant":false,"functionSelector":"85e5ee19","id":5244,"mutability":"mutable","name":"crossChainAdapters","nameLocation":"1322:18:29","nodeType":"VariableDeclaration","scope":5492,"src":"1268:72:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_address_$_$","typeString":"mapping(address => mapping(uint32 => address))"},"typeName":{"id":5243,"keyType":{"id":5239,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1268:46:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_address_$_$","typeString":"mapping(address => mapping(uint32 => address))"},"valueType":{"id":5242,"keyType":{"id":5240,"name":"uint32","nodeType":"ElementaryTypeName","src":"1295:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Mapping","src":"1287:26:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_address_$","typeString":"mapping(uint32 => address)"},"valueType":{"id":5241,"name":"address","nodeType":"ElementaryTypeName","src":"1305:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"public"},{"body":{"id":5261,"nodeType":"Block","src":"1480:73:29","statements":[{"expression":{"id":5255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5253,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5224,"src":"1490:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5254,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"1501:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"src":"1490:20:29","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"id":5256,"nodeType":"ExpressionStatement","src":"1490:20:29"},{"expression":{"arguments":[{"id":5258,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5247,"src":"1539:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5257,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"1520:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1520:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5260,"nodeType":"ExpressionStatement","src":"1520:26:29"}]},"documentation":{"id":5245,"nodeType":"StructuredDocumentation","src":"1347:70:29","text":" @param _owner Address of the owner of the registry."},"id":5262,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5247,"mutability":"mutable","name":"_owner","nameLocation":"1442:6:29","nodeType":"VariableDeclaration","scope":5262,"src":"1434:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5246,"name":"address","nodeType":"ElementaryTypeName","src":"1434:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5250,"mutability":"mutable","name":"_registry","nameLocation":"1469:9:29","nodeType":"VariableDeclaration","scope":5262,"src":"1450:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},"typeName":{"id":5249,"nodeType":"UserDefinedTypeName","pathNode":{"id":5248,"name":"ChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":8652,"src":"1450:18:29"},"referencedDeclaration":8652,"src":"1450:18:29","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"visibility":"internal"}],"src":"1433:46:29"},"returnParameters":{"id":5252,"nodeType":"ParameterList","parameters":[],"src":"1480:0:29"},"scope":5492,"src":"1422:131:29","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5294,"nodeType":"Block","src":"1629:224:29","statements":[{"expression":{"arguments":[{"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1647:24:29","subExpression":{"baseExpression":{"id":5270,"name":"organizationIDs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"1648:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":5272,"indexExpression":{"id":5271,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5264,"src":"1664:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1648:23:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c617368436c61696d65723a206f7267494420616c726561647920636c61696d6564","id":5274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1673:42:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aa16de064b0d4bc3e18581fd7ca0a68affd08efd8e9e2d3b3c29d12c609596b","typeString":"literal_string \"ChugSplashClaimer: orgID already claimed\""},"value":"ChugSplashClaimer: orgID already claimed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8aa16de064b0d4bc3e18581fd7ca0a68affd08efd8e9e2d3b3c29d12c609596b","typeString":"literal_string \"ChugSplashClaimer: orgID already claimed\""}],"id":5269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1639:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1639:77:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5276,"nodeType":"ExpressionStatement","src":"1639:77:29"},{"expression":{"id":5281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5277,"name":"organizationIDs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5228,"src":"1726:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":5279,"indexExpression":{"id":5278,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5264,"src":"1742:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1726:23:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1752:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1726:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5282,"nodeType":"ExpressionStatement","src":"1726:30:29"},{"expression":{"id":5287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5283,"name":"orgIDOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5232,"src":"1766:11:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":5285,"indexExpression":{"id":5284,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5264,"src":"1778:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1766:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5286,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5266,"src":"1788:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1766:28:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5288,"nodeType":"ExpressionStatement","src":"1766:28:29"},{"eventCall":{"arguments":[{"id":5290,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5264,"src":"1831:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5291,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5266,"src":"1839:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5289,"name":"OrganizationIDClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"1809:21:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1809:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5293,"nodeType":"EmitStatement","src":"1804:42:29"}]},"functionSelector":"c84902c0","id":5295,"implemented":true,"kind":"function","modifiers":[],"name":"claimOrganizationID","nameLocation":"1568:19:29","nodeType":"FunctionDefinition","parameters":{"id":5267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5264,"mutability":"mutable","name":"_orgID","nameLocation":"1596:6:29","nodeType":"VariableDeclaration","scope":5295,"src":"1588:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1588:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5266,"mutability":"mutable","name":"_owner","nameLocation":"1612:6:29","nodeType":"VariableDeclaration","scope":5295,"src":"1604:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5265,"name":"address","nodeType":"ElementaryTypeName","src":"1604:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1587:32:29"},"returnParameters":{"id":5268,"nodeType":"ParameterList","parameters":[],"src":"1629:0:29"},"scope":5492,"src":"1559:294:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5430,"nodeType":"Block","src":"2039:1554:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5309,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2070:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2070:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":5311,"name":"orgIDOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5232,"src":"2084:11:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":5313,"indexExpression":{"id":5312,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5297,"src":"2096:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2084:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2070:33:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":5315,"name":"approvedInitiators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5238,"src":"2107:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes32 => mapping(address => bool))"}},"id":5317,"indexExpression":{"id":5316,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5297,"src":"2126:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2107:26:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5320,"indexExpression":{"expression":{"id":5318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2134:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2134:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2107:38:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2070:75:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c617368436c61696d65723a2063616c6c6572206e6f7420617070726f766564","id":5322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2159:40:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_cba8bd74eece2738fbff49633c8300e0cb2d7ddd2fcffa7383cd914f0853966e","typeString":"literal_string \"ChugSplashClaimer: caller not approved\""},"value":"ChugSplashClaimer: caller not approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cba8bd74eece2738fbff49633c8300e0cb2d7ddd2fcffa7383cd914f0853966e","typeString":"literal_string \"ChugSplashClaimer: caller not approved\""}],"id":5308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2049:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2049:160:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5324,"nodeType":"ExpressionStatement","src":"2049:160:29"},{"body":{"id":5428,"nodeType":"Block","src":"2264:1323:29","statements":[{"assignments":[5338],"declarations":[{"constant":false,"id":5338,"mutability":"mutable","name":"messageInfo","nameLocation":"2307:11:29","nodeType":"VariableDeclaration","scope":5428,"src":"2278:40:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo"},"typeName":{"id":5337,"nodeType":"UserDefinedTypeName","pathNode":{"id":5336,"name":"CrossChainMessageInfo","nodeType":"IdentifierPath","referencedDeclaration":5560,"src":"2278:21:29"},"referencedDeclaration":5560,"src":"2278:21:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_storage_ptr","typeString":"struct CrossChainMessageInfo"}},"visibility":"internal"}],"id":5342,"initialValue":{"baseExpression":{"id":5339,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"2321:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainMessageInfo memory[] memory"}},"id":5341,"indexExpression":{"id":5340,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"2331:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2321:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"2278:55:29"},{"assignments":[5345],"declarations":[{"constant":false,"id":5345,"mutability":"mutable","name":"registration","nameLocation":"2371:12:29","nodeType":"VariableDeclaration","scope":5428,"src":"2347:36:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo"},"typeName":{"id":5344,"nodeType":"UserDefinedTypeName","pathNode":{"id":5343,"name":"RegistrationInfo","nodeType":"IdentifierPath","referencedDeclaration":5575,"src":"2347:16:29"},"referencedDeclaration":5575,"src":"2347:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_storage_ptr","typeString":"struct RegistrationInfo"}},"visibility":"internal"}],"id":5349,"initialValue":{"baseExpression":{"id":5346,"name":"_registrationInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5305,"src":"2386:17:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RegistrationInfo_$5575_memory_ptr_$dyn_memory_ptr","typeString":"struct RegistrationInfo memory[] memory"}},"id":5348,"indexExpression":{"id":5347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"2404:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2386:20:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"2347:59:29"},{"assignments":[5352],"declarations":[{"constant":false,"id":5352,"mutability":"mutable","name":"version","nameLocation":"2435:7:29","nodeType":"VariableDeclaration","scope":5428,"src":"2420:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version"},"typeName":{"id":5351,"nodeType":"UserDefinedTypeName","pathNode":{"id":5350,"name":"Version","nodeType":"IdentifierPath","referencedDeclaration":5567,"src":"2420:7:29"},"referencedDeclaration":5567,"src":"2420:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"}},"visibility":"internal"}],"id":5355,"initialValue":{"expression":{"id":5353,"name":"registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5345,"src":"2445:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":5354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":5570,"src":"2445:20:29","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"nodeType":"VariableDeclarationStatement","src":"2420:45:29"},{"assignments":[5357],"declarations":[{"constant":false,"id":5357,"mutability":"mutable","name":"managerImpl","nameLocation":"2488:11:29","nodeType":"VariableDeclaration","scope":5428,"src":"2480:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5356,"name":"address","nodeType":"ElementaryTypeName","src":"2480:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5367,"initialValue":{"arguments":[{"expression":{"id":5360,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5352,"src":"2520:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":5361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"major","nodeType":"MemberAccess","referencedDeclaration":5562,"src":"2520:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5362,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5352,"src":"2535:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":5363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minor","nodeType":"MemberAccess","referencedDeclaration":5564,"src":"2535:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5364,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5352,"src":"2550:7:29","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":5365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"patch","nodeType":"MemberAccess","referencedDeclaration":5566,"src":"2550:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5358,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5224,"src":"2502:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"versions","nodeType":"MemberAccess","referencedDeclaration":8360,"src":"2502:17:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_address_$","typeString":"function (uint256,uint256,uint256) view external returns (address)"}},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2502:62:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2480:84:29"},{"expression":{"arguments":[{"arguments":[{"id":5371,"name":"managerImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"2635:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5369,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5224,"src":"2603:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"id":5370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"managerImplementations","nodeType":"MemberAccess","referencedDeclaration":8351,"src":"2603:31:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2603:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c617368436c61696d65723a20696e76616c6964206d616e616765722076657273696f6e","id":5373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2665:44:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_d9c081a9dea8ed12ff75f290a05f238b5a259f42a155230111212312ff46e356","typeString":"literal_string \"ChugSplashClaimer: invalid manager version\""},"value":"ChugSplashClaimer: invalid manager version"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d9c081a9dea8ed12ff75f290a05f238b5a259f42a155230111212312ff46e356","typeString":"literal_string \"ChugSplashClaimer: invalid manager version\""}],"id":5368,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2578:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2578:145:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5375,"nodeType":"ExpressionStatement","src":"2578:145:29"},{"assignments":[5377],"declarations":[{"constant":false,"id":5377,"mutability":"mutable","name":"crossChainAdapter","nameLocation":"2746:17:29","nodeType":"VariableDeclaration","scope":5428,"src":"2738:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5376,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5385,"initialValue":{"baseExpression":{"baseExpression":{"id":5378,"name":"crossChainAdapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5244,"src":"2766:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_address_$_$","typeString":"mapping(address => mapping(uint32 => address))"}},"id":5381,"indexExpression":{"expression":{"id":5379,"name":"messageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"2785:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"id":5380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"originEndpoint","nodeType":"MemberAccess","referencedDeclaration":5555,"src":"2785:26:29","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2766:46:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_address_$","typeString":"mapping(uint32 => address)"}},"id":5384,"indexExpression":{"expression":{"id":5382,"name":"messageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"2830:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"id":5383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"destDomainID","nodeType":"MemberAccess","referencedDeclaration":5557,"src":"2830:24:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2766:102:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2738:130:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5387,"name":"crossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5377,"src":"2907:17:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2936:1:29","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":5389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2928:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5388,"name":"address","nodeType":"ElementaryTypeName","src":"2928:7:29","typeDescriptions":{}}},"id":5391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2928:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2907:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c617368436c61696d65723a20696e76616c69642063726f7373436861696e2061646170746572","id":5393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2956:47:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_dad25f4d162c720300d3a9513948bbfa9b12f4dfb9d21b85f9f818a36cfea887","typeString":"literal_string \"ChugSplashClaimer: invalid crossChain adapter\""},"value":"ChugSplashClaimer: invalid crossChain adapter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dad25f4d162c720300d3a9513948bbfa9b12f4dfb9d21b85f9f818a36cfea887","typeString":"literal_string \"ChugSplashClaimer: invalid crossChain adapter\""}],"id":5386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2882:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2882:135:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5395,"nodeType":"ExpressionStatement","src":"2882:135:29"},{"assignments":[5397,null],"declarations":[{"constant":false,"id":5397,"mutability":"mutable","name":"success","nameLocation":"3038:7:29","nodeType":"VariableDeclaration","scope":5428,"src":"3033:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5396,"name":"bool","nodeType":"ElementaryTypeName","src":"3033:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":5410,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":5402,"name":"ICrossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"3135:18:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossChainAdapter_$9823_$","typeString":"type(contract ICrossChainAdapter)"}},"id":5403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"initiateRegistration","nodeType":"MemberAccess","referencedDeclaration":9822,"src":"3135:39:29","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_struct$_RegistrationInfo_$5575_memory_ptr_$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$returns$__$","typeString":"function ICrossChainAdapter.initiateRegistration(bytes32,struct RegistrationInfo memory,struct CrossChainMessageInfo memory)"}},{"components":[{"id":5404,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5297,"src":"3197:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5405,"name":"registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5345,"src":"3205:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},{"id":5406,"name":"messageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"3219:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}}],"id":5407,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3196:35:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_struct$_RegistrationInfo_$5575_memory_ptr_$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$","typeString":"tuple(bytes32,struct RegistrationInfo memory,struct CrossChainMessageInfo memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_struct$_RegistrationInfo_$5575_memory_ptr_$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$returns$__$","typeString":"function ICrossChainAdapter.initiateRegistration(bytes32,struct RegistrationInfo memory,struct CrossChainMessageInfo memory)"},{"typeIdentifier":"t_tuple$_t_bytes32_$_t_struct$_RegistrationInfo_$5575_memory_ptr_$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$","typeString":"tuple(bytes32,struct RegistrationInfo memory,struct CrossChainMessageInfo memory)"}],"expression":{"id":5400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3099:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"3099:14:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3099:150:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5398,"name":"crossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5377,"src":"3051:17:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"3051:30:29","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":5409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3051:212:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3032:231:29"},{"expression":{"arguments":[{"id":5412,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"3285:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c617368436c61696d65723a206661696c656420746f20696e69746961746520726567697374726174696f6e","id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3294:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0474ff842f36dbc33ed4df1f325b5f3b9519e950f0cc89458a27a13ba1a4704","typeString":"literal_string \"ChugSplashClaimer: failed to initiate registration\""},"value":"ChugSplashClaimer: failed to initiate registration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c0474ff842f36dbc33ed4df1f325b5f3b9519e950f0cc89458a27a13ba1a4704","typeString":"literal_string \"ChugSplashClaimer: failed to initiate registration\""}],"id":5411,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3277:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3277:70:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5415,"nodeType":"ExpressionStatement","src":"3277:70:29"},{"eventCall":{"arguments":[{"id":5417,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5297,"src":"3406:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5418,"name":"messageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"3430:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"id":5419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"originEndpoint","nodeType":"MemberAccess","referencedDeclaration":5555,"src":"3430:26:29","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":5420,"name":"messageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"3474:11:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"id":5421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"destDomainID","nodeType":"MemberAccess","referencedDeclaration":5557,"src":"3474:24:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":5422,"name":"registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5345,"src":"3516:12:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":5423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5572,"src":"3516:18:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5424,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3552:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3552:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5416,"name":"RegistrationInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5205,"src":"3367:21:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,uint32,address,address)"}},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3367:209:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5427,"nodeType":"EmitStatement","src":"3362:214:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5329,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"2237:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5330,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"2241:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainMessageInfo memory[] memory"}},"id":5331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2241:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2237:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5429,"initializationExpression":{"assignments":[5326],"declarations":[{"constant":false,"id":5326,"mutability":"mutable","name":"i","nameLocation":"2230:1:29","nodeType":"VariableDeclaration","scope":5429,"src":"2225:6:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5325,"name":"uint","nodeType":"ElementaryTypeName","src":"2225:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5328,"initialValue":{"hexValue":"30","id":5327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2234:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2225:10:29"},"loopExpression":{"expression":{"id":5334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2259:3:29","subExpression":{"id":5333,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"2259:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5335,"nodeType":"ExpressionStatement","src":"2259:3:29"},"nodeType":"ForStatement","src":"2220:1367:29"}]},"functionSelector":"a21dff00","id":5431,"implemented":true,"kind":"function","modifiers":[],"name":"initiateRegistration","nameLocation":"1868:20:29","nodeType":"FunctionDefinition","parameters":{"id":5306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5297,"mutability":"mutable","name":"_orgID","nameLocation":"1906:6:29","nodeType":"VariableDeclaration","scope":5431,"src":"1898:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1898:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5301,"mutability":"mutable","name":"_messages","nameLocation":"1953:9:29","nodeType":"VariableDeclaration","scope":5431,"src":"1922:40:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossChainMessageInfo[]"},"typeName":{"baseType":{"id":5299,"nodeType":"UserDefinedTypeName","pathNode":{"id":5298,"name":"CrossChainMessageInfo","nodeType":"IdentifierPath","referencedDeclaration":5560,"src":"1922:21:29"},"referencedDeclaration":5560,"src":"1922:21:29","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_storage_ptr","typeString":"struct CrossChainMessageInfo"}},"id":5300,"nodeType":"ArrayTypeName","src":"1922:23:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossChainMessageInfo_$5560_storage_$dyn_storage_ptr","typeString":"struct CrossChainMessageInfo[]"}},"visibility":"internal"},{"constant":false,"id":5305,"mutability":"mutable","name":"_registrationInfo","nameLocation":"1998:17:29","nodeType":"VariableDeclaration","scope":5431,"src":"1972:43:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RegistrationInfo_$5575_memory_ptr_$dyn_memory_ptr","typeString":"struct RegistrationInfo[]"},"typeName":{"baseType":{"id":5303,"nodeType":"UserDefinedTypeName","pathNode":{"id":5302,"name":"RegistrationInfo","nodeType":"IdentifierPath","referencedDeclaration":5575,"src":"1972:16:29"},"referencedDeclaration":5575,"src":"1972:16:29","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_storage_ptr","typeString":"struct RegistrationInfo"}},"id":5304,"nodeType":"ArrayTypeName","src":"1972:18:29","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RegistrationInfo_$5575_storage_$dyn_storage_ptr","typeString":"struct RegistrationInfo[]"}},"visibility":"internal"}],"src":"1888:133:29"},"returnParameters":{"id":5307,"nodeType":"ParameterList","parameters":[],"src":"2039:0:29"},"scope":5492,"src":"1859:1734:29","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":5464,"nodeType":"Block","src":"3690:235:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5441,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3708:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3708:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":5443,"name":"orgIDOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5232,"src":"3722:11:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":5445,"indexExpression":{"id":5444,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"3734:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3722:19:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3708:33:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c617368436c61696d65723a2063616c6c6572206e6f74206f7267204944206f776e6572","id":5447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3743:44:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_640f34a928259f01608f46baf73a4cd239bf35ab13e80fbd1e6fedcbc59513b7","typeString":"literal_string \"ChugSplashClaimer: caller not org ID owner\""},"value":"ChugSplashClaimer: caller not org ID owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_640f34a928259f01608f46baf73a4cd239bf35ab13e80fbd1e6fedcbc59513b7","typeString":"literal_string \"ChugSplashClaimer: caller not org ID owner\""}],"id":5440,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3700:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3700:88:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5449,"nodeType":"ExpressionStatement","src":"3700:88:29"},{"expression":{"id":5456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5450,"name":"approvedInitiators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5238,"src":"3798:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(bytes32 => mapping(address => bool))"}},"id":5453,"indexExpression":{"id":5451,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"3817:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3798:26:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5454,"indexExpression":{"id":5452,"name":"_initiator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"3825:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3798:38:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5455,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5437,"src":"3839:9:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3798:50:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5457,"nodeType":"ExpressionStatement","src":"3798:50:29"},{"eventCall":{"arguments":[{"id":5459,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"3888:6:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5460,"name":"_initiator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"3896:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5461,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5437,"src":"3908:9:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5458,"name":"InitiatorApprovalChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5213,"src":"3863:24:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bool)"}},"id":5462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3863:55:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5463,"nodeType":"EmitStatement","src":"3858:60:29"}]},"functionSelector":"052e8df4","id":5465,"implemented":true,"kind":"function","modifiers":[],"name":"setInitiatorApproval","nameLocation":"3608:20:29","nodeType":"FunctionDefinition","parameters":{"id":5438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5433,"mutability":"mutable","name":"_orgID","nameLocation":"3637:6:29","nodeType":"VariableDeclaration","scope":5465,"src":"3629:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3629:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5435,"mutability":"mutable","name":"_initiator","nameLocation":"3653:10:29","nodeType":"VariableDeclaration","scope":5465,"src":"3645:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5434,"name":"address","nodeType":"ElementaryTypeName","src":"3645:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5437,"mutability":"mutable","name":"_approved","nameLocation":"3670:9:29","nodeType":"VariableDeclaration","scope":5465,"src":"3665:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5436,"name":"bool","nodeType":"ElementaryTypeName","src":"3665:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3628:52:29"},"returnParameters":{"id":5439,"nodeType":"ParameterList","parameters":[],"src":"3690:0:29"},"scope":5492,"src":"3599:326:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5490,"nodeType":"Block","src":"4085:179:29","statements":[{"expression":{"id":5482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5476,"name":"crossChainAdapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5244,"src":"4095:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint32_$_t_address_$_$","typeString":"mapping(address => mapping(uint32 => address))"}},"id":5479,"indexExpression":{"id":5477,"name":"_originEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"4114:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4095:35:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint32_$_t_address_$","typeString":"mapping(uint32 => address)"}},"id":5480,"indexExpression":{"id":5478,"name":"_destDomainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"4131:13:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4095:50:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5481,"name":"_crossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5471,"src":"4148:18:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4095:71:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5483,"nodeType":"ExpressionStatement","src":"4095:71:29"},{"eventCall":{"arguments":[{"id":5485,"name":"_originEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"4206:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5486,"name":"_destDomainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"4223:13:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":5487,"name":"_crossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5471,"src":"4238:18:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5484,"name":"CrossChainAdapterChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"4181:24:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint32_$_t_address_$returns$__$","typeString":"function (address,uint32,address)"}},"id":5488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4181:76:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5489,"nodeType":"EmitStatement","src":"4176:81:29"}]},"functionSelector":"ef859f98","id":5491,"implemented":true,"kind":"function","modifiers":[{"id":5474,"kind":"modifierInvocation","modifierName":{"id":5473,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2216,"src":"4075:9:29"},"nodeType":"ModifierInvocation","src":"4075:9:29"}],"name":"setCrossChainAdapter","nameLocation":"3940:20:29","nodeType":"FunctionDefinition","parameters":{"id":5472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5467,"mutability":"mutable","name":"_originEndpoint","nameLocation":"3978:15:29","nodeType":"VariableDeclaration","scope":5491,"src":"3970:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5466,"name":"address","nodeType":"ElementaryTypeName","src":"3970:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5469,"mutability":"mutable","name":"_destDomainID","nameLocation":"4010:13:29","nodeType":"VariableDeclaration","scope":5491,"src":"4003:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5468,"name":"uint32","nodeType":"ElementaryTypeName","src":"4003:6:29","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":5471,"mutability":"mutable","name":"_crossChainAdapter","nameLocation":"4041:18:29","nodeType":"VariableDeclaration","scope":5491,"src":"4033:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5470,"name":"address","nodeType":"ElementaryTypeName","src":"4033:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3960:105:29"},"returnParameters":{"id":5475,"nodeType":"ParameterList","parameters":[],"src":"4085:0:29"},"scope":5492,"src":"3931:333:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5493,"src":"396:3870:29","usedErrors":[]}],"src":"32:4235:29"},"id":29},"contracts/ChugSplashDataTypes.sol":{"ast":{"absolutePath":"contracts/ChugSplashDataTypes.sol","exportedSymbols":{"ActionProof":[5616],"BundledChugSplashAction":[5603],"BundledChugSplashTarget":[5610],"ChugSplashActionBundle":[5589],"ChugSplashActionType":[5545],"ChugSplashBundles":[5582],"ChugSplashTarget":[5542],"ChugSplashTargetBundle":[5596],"CrossChainMessageInfo":[5560],"DeploymentState":[5519],"DeploymentStatus":[5553],"RawChugSplashAction":[5531],"RegistrationInfo":[5575],"Version":[5567]},"id":5617,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5494,"literals":["solidity",">=","0.7",".4","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:31:30"},{"canonicalName":"DeploymentState","id":5519,"members":[{"constant":false,"id":5497,"mutability":"mutable","name":"status","nameLocation":"1087:6:30","nodeType":"VariableDeclaration","scope":5519,"src":"1070:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"typeName":{"id":5496,"nodeType":"UserDefinedTypeName","pathNode":{"id":5495,"name":"DeploymentStatus","nodeType":"IdentifierPath","referencedDeclaration":5553,"src":"1070:16:30"},"referencedDeclaration":5553,"src":"1070:16:30","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"visibility":"internal"},{"constant":false,"id":5500,"mutability":"mutable","name":"actions","nameLocation":"1106:7:30","nodeType":"VariableDeclaration","scope":5519,"src":"1099:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":5498,"name":"bool","nodeType":"ElementaryTypeName","src":"1099:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5499,"nodeType":"ArrayTypeName","src":"1099:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":5502,"mutability":"mutable","name":"targets","nameLocation":"1127:7:30","nodeType":"VariableDeclaration","scope":5519,"src":"1119:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5501,"name":"uint256","nodeType":"ElementaryTypeName","src":"1119:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5504,"mutability":"mutable","name":"actionRoot","nameLocation":"1148:10:30","nodeType":"VariableDeclaration","scope":5519,"src":"1140:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1140:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5506,"mutability":"mutable","name":"targetRoot","nameLocation":"1172:10:30","nodeType":"VariableDeclaration","scope":5519,"src":"1164:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1164:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5508,"mutability":"mutable","name":"numImmutableContracts","nameLocation":"1196:21:30","nodeType":"VariableDeclaration","scope":5519,"src":"1188:29:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5507,"name":"uint256","nodeType":"ElementaryTypeName","src":"1188:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5510,"mutability":"mutable","name":"actionsExecuted","nameLocation":"1231:15:30","nodeType":"VariableDeclaration","scope":5519,"src":"1223:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5512,"mutability":"mutable","name":"timeClaimed","nameLocation":"1260:11:30","nodeType":"VariableDeclaration","scope":5519,"src":"1252:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5514,"mutability":"mutable","name":"selectedExecutor","nameLocation":"1285:16:30","nodeType":"VariableDeclaration","scope":5519,"src":"1277:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5513,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5516,"mutability":"mutable","name":"remoteExecution","nameLocation":"1312:15:30","nodeType":"VariableDeclaration","scope":5519,"src":"1307:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5515,"name":"bool","nodeType":"ElementaryTypeName","src":"1307:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5518,"mutability":"mutable","name":"configUri","nameLocation":"1340:9:30","nodeType":"VariableDeclaration","scope":5519,"src":"1333:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5517,"name":"string","nodeType":"ElementaryTypeName","src":"1333:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"DeploymentState","nameLocation":"1048:15:30","nodeType":"StructDefinition","scope":5617,"src":"1041:311:30","visibility":"public"},{"canonicalName":"RawChugSplashAction","id":5531,"members":[{"constant":false,"id":5522,"mutability":"mutable","name":"actionType","nameLocation":"1844:10:30","nodeType":"VariableDeclaration","scope":5531,"src":"1823:31:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"},"typeName":{"id":5521,"nodeType":"UserDefinedTypeName","pathNode":{"id":5520,"name":"ChugSplashActionType","nodeType":"IdentifierPath","referencedDeclaration":5545,"src":"1823:20:30"},"referencedDeclaration":5545,"src":"1823:20:30","typeDescriptions":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"}},"visibility":"internal"},{"constant":false,"id":5524,"mutability":"mutable","name":"data","nameLocation":"1866:4:30","nodeType":"VariableDeclaration","scope":5531,"src":"1860:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5523,"name":"bytes","nodeType":"ElementaryTypeName","src":"1860:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5526,"mutability":"mutable","name":"addr","nameLocation":"1892:4:30","nodeType":"VariableDeclaration","scope":5531,"src":"1876:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5525,"name":"address","nodeType":"ElementaryTypeName","src":"1876:15:30","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":5528,"mutability":"mutable","name":"contractKindHash","nameLocation":"1910:16:30","nodeType":"VariableDeclaration","scope":5531,"src":"1902:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1902:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5530,"mutability":"mutable","name":"referenceName","nameLocation":"1939:13:30","nodeType":"VariableDeclaration","scope":5531,"src":"1932:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5529,"name":"string","nodeType":"ElementaryTypeName","src":"1932:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"RawChugSplashAction","nameLocation":"1797:19:30","nodeType":"StructDefinition","scope":5617,"src":"1790:165:30","visibility":"public"},{"canonicalName":"ChugSplashTarget","id":5542,"members":[{"constant":false,"id":5533,"mutability":"mutable","name":"projectName","nameLocation":"2493:11:30","nodeType":"VariableDeclaration","scope":5542,"src":"2486:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5532,"name":"string","nodeType":"ElementaryTypeName","src":"2486:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5535,"mutability":"mutable","name":"referenceName","nameLocation":"2517:13:30","nodeType":"VariableDeclaration","scope":5542,"src":"2510:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5534,"name":"string","nodeType":"ElementaryTypeName","src":"2510:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5537,"mutability":"mutable","name":"addr","nameLocation":"2552:4:30","nodeType":"VariableDeclaration","scope":5542,"src":"2536:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5536,"name":"address","nodeType":"ElementaryTypeName","src":"2536:15:30","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":5539,"mutability":"mutable","name":"implementation","nameLocation":"2570:14:30","nodeType":"VariableDeclaration","scope":5542,"src":"2562:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5538,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5541,"mutability":"mutable","name":"contractKindHash","nameLocation":"2598:16:30","nodeType":"VariableDeclaration","scope":5542,"src":"2590:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2590:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChugSplashTarget","nameLocation":"2463:16:30","nodeType":"StructDefinition","scope":5617,"src":"2456:161:30","visibility":"public"},{"canonicalName":"ChugSplashActionType","id":5545,"members":[{"id":5543,"name":"SET_STORAGE","nameLocation":"2841:11:30","nodeType":"EnumValue","src":"2841:11:30"},{"id":5544,"name":"DEPLOY_CONTRACT","nameLocation":"2858:15:30","nodeType":"EnumValue","src":"2858:15:30"}],"name":"ChugSplashActionType","nameLocation":"2814:20:30","nodeType":"EnumDefinition","src":"2809:66:30"},{"canonicalName":"DeploymentStatus","id":5553,"members":[{"id":5546,"name":"EMPTY","nameLocation":"3513:5:30","nodeType":"EnumValue","src":"3513:5:30"},{"id":5547,"name":"PROPOSED","nameLocation":"3524:8:30","nodeType":"EnumValue","src":"3524:8:30"},{"id":5548,"name":"APPROVED","nameLocation":"3538:8:30","nodeType":"EnumValue","src":"3538:8:30"},{"id":5549,"name":"PROXIES_INITIATED","nameLocation":"3552:17:30","nodeType":"EnumValue","src":"3552:17:30"},{"id":5550,"name":"COMPLETED","nameLocation":"3575:9:30","nodeType":"EnumValue","src":"3575:9:30"},{"id":5551,"name":"CANCELLED","nameLocation":"3590:9:30","nodeType":"EnumValue","src":"3590:9:30"},{"id":5552,"name":"FAILED","nameLocation":"3605:6:30","nodeType":"EnumValue","src":"3605:6:30"}],"name":"DeploymentStatus","nameLocation":"3490:16:30","nodeType":"EnumDefinition","src":"3485:128:30"},{"canonicalName":"CrossChainMessageInfo","id":5560,"members":[{"constant":false,"id":5555,"mutability":"mutable","name":"originEndpoint","nameLocation":"3666:14:30","nodeType":"VariableDeclaration","scope":5560,"src":"3650:30:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5554,"name":"address","nodeType":"ElementaryTypeName","src":"3650:15:30","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":5557,"mutability":"mutable","name":"destDomainID","nameLocation":"3693:12:30","nodeType":"VariableDeclaration","scope":5560,"src":"3686:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5556,"name":"uint32","nodeType":"ElementaryTypeName","src":"3686:6:30","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":5559,"mutability":"mutable","name":"relayerFee","nameLocation":"3719:10:30","nodeType":"VariableDeclaration","scope":5560,"src":"3711:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5558,"name":"uint256","nodeType":"ElementaryTypeName","src":"3711:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CrossChainMessageInfo","nameLocation":"3622:21:30","nodeType":"StructDefinition","scope":5617,"src":"3615:117:30","visibility":"public"},{"canonicalName":"Version","id":5567,"members":[{"constant":false,"id":5562,"mutability":"mutable","name":"major","nameLocation":"3948:5:30","nodeType":"VariableDeclaration","scope":5567,"src":"3940:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5561,"name":"uint256","nodeType":"ElementaryTypeName","src":"3940:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5564,"mutability":"mutable","name":"minor","nameLocation":"3967:5:30","nodeType":"VariableDeclaration","scope":5567,"src":"3959:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5563,"name":"uint256","nodeType":"ElementaryTypeName","src":"3959:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5566,"mutability":"mutable","name":"patch","nameLocation":"3986:5:30","nodeType":"VariableDeclaration","scope":5567,"src":"3978:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5565,"name":"uint256","nodeType":"ElementaryTypeName","src":"3978:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Version","nameLocation":"3926:7:30","nodeType":"StructDefinition","scope":5617,"src":"3919:75:30","visibility":"public"},{"canonicalName":"RegistrationInfo","id":5575,"members":[{"constant":false,"id":5570,"mutability":"mutable","name":"version","nameLocation":"4034:7:30","nodeType":"VariableDeclaration","scope":5575,"src":"4026:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"},"typeName":{"id":5569,"nodeType":"UserDefinedTypeName","pathNode":{"id":5568,"name":"Version","nodeType":"IdentifierPath","referencedDeclaration":5567,"src":"4026:7:30"},"referencedDeclaration":5567,"src":"4026:7:30","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"}},"visibility":"internal"},{"constant":false,"id":5572,"mutability":"mutable","name":"owner","nameLocation":"4055:5:30","nodeType":"VariableDeclaration","scope":5575,"src":"4047:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5571,"name":"address","nodeType":"ElementaryTypeName","src":"4047:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5574,"mutability":"mutable","name":"managerInitializerData","nameLocation":"4072:22:30","nodeType":"VariableDeclaration","scope":5575,"src":"4066:28:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5573,"name":"bytes","nodeType":"ElementaryTypeName","src":"4066:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RegistrationInfo","nameLocation":"4003:16:30","nodeType":"StructDefinition","scope":5617,"src":"3996:101:30","visibility":"public"},{"canonicalName":"ChugSplashBundles","id":5582,"members":[{"constant":false,"id":5578,"mutability":"mutable","name":"actionBundle","nameLocation":"4153:12:30","nodeType":"VariableDeclaration","scope":5582,"src":"4130:35:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashActionBundle_$5589_storage_ptr","typeString":"struct ChugSplashActionBundle"},"typeName":{"id":5577,"nodeType":"UserDefinedTypeName","pathNode":{"id":5576,"name":"ChugSplashActionBundle","nodeType":"IdentifierPath","referencedDeclaration":5589,"src":"4130:22:30"},"referencedDeclaration":5589,"src":"4130:22:30","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashActionBundle_$5589_storage_ptr","typeString":"struct ChugSplashActionBundle"}},"visibility":"internal"},{"constant":false,"id":5581,"mutability":"mutable","name":"targetBundle","nameLocation":"4194:12:30","nodeType":"VariableDeclaration","scope":5582,"src":"4171:35:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTargetBundle_$5596_storage_ptr","typeString":"struct ChugSplashTargetBundle"},"typeName":{"id":5580,"nodeType":"UserDefinedTypeName","pathNode":{"id":5579,"name":"ChugSplashTargetBundle","nodeType":"IdentifierPath","referencedDeclaration":5596,"src":"4171:22:30"},"referencedDeclaration":5596,"src":"4171:22:30","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTargetBundle_$5596_storage_ptr","typeString":"struct ChugSplashTargetBundle"}},"visibility":"internal"}],"name":"ChugSplashBundles","nameLocation":"4106:17:30","nodeType":"StructDefinition","scope":5617,"src":"4099:110:30","visibility":"public"},{"canonicalName":"ChugSplashActionBundle","id":5589,"members":[{"constant":false,"id":5584,"mutability":"mutable","name":"root","nameLocation":"4255:4:30","nodeType":"VariableDeclaration","scope":5589,"src":"4247:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4247:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5588,"mutability":"mutable","name":"actions","nameLocation":"4291:7:30","nodeType":"VariableDeclaration","scope":5589,"src":"4265:33:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BundledChugSplashAction_$5603_storage_$dyn_storage_ptr","typeString":"struct BundledChugSplashAction[]"},"typeName":{"baseType":{"id":5586,"nodeType":"UserDefinedTypeName","pathNode":{"id":5585,"name":"BundledChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5603,"src":"4265:23:30"},"referencedDeclaration":5603,"src":"4265:23:30","typeDescriptions":{"typeIdentifier":"t_struct$_BundledChugSplashAction_$5603_storage_ptr","typeString":"struct BundledChugSplashAction"}},"id":5587,"nodeType":"ArrayTypeName","src":"4265:25:30","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BundledChugSplashAction_$5603_storage_$dyn_storage_ptr","typeString":"struct BundledChugSplashAction[]"}},"visibility":"internal"}],"name":"ChugSplashActionBundle","nameLocation":"4218:22:30","nodeType":"StructDefinition","scope":5617,"src":"4211:90:30","visibility":"public"},{"canonicalName":"ChugSplashTargetBundle","id":5596,"members":[{"constant":false,"id":5591,"mutability":"mutable","name":"root","nameLocation":"4347:4:30","nodeType":"VariableDeclaration","scope":5596,"src":"4339:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4339:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5595,"mutability":"mutable","name":"targets","nameLocation":"4383:7:30","nodeType":"VariableDeclaration","scope":5596,"src":"4357:33:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BundledChugSplashTarget_$5610_storage_$dyn_storage_ptr","typeString":"struct BundledChugSplashTarget[]"},"typeName":{"baseType":{"id":5593,"nodeType":"UserDefinedTypeName","pathNode":{"id":5592,"name":"BundledChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5610,"src":"4357:23:30"},"referencedDeclaration":5610,"src":"4357:23:30","typeDescriptions":{"typeIdentifier":"t_struct$_BundledChugSplashTarget_$5610_storage_ptr","typeString":"struct BundledChugSplashTarget"}},"id":5594,"nodeType":"ArrayTypeName","src":"4357:25:30","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BundledChugSplashTarget_$5610_storage_$dyn_storage_ptr","typeString":"struct BundledChugSplashTarget[]"}},"visibility":"internal"}],"name":"ChugSplashTargetBundle","nameLocation":"4310:22:30","nodeType":"StructDefinition","scope":5617,"src":"4303:90:30","visibility":"public"},{"canonicalName":"BundledChugSplashAction","id":5603,"members":[{"constant":false,"id":5599,"mutability":"mutable","name":"action","nameLocation":"4452:6:30","nodeType":"VariableDeclaration","scope":5603,"src":"4432:26:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"},"typeName":{"id":5598,"nodeType":"UserDefinedTypeName","pathNode":{"id":5597,"name":"RawChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"4432:19:30"},"referencedDeclaration":5531,"src":"4432:19:30","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"}},"visibility":"internal"},{"constant":false,"id":5602,"mutability":"mutable","name":"proof","nameLocation":"4476:5:30","nodeType":"VariableDeclaration","scope":5603,"src":"4464:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ActionProof_$5616_storage_ptr","typeString":"struct ActionProof"},"typeName":{"id":5601,"nodeType":"UserDefinedTypeName","pathNode":{"id":5600,"name":"ActionProof","nodeType":"IdentifierPath","referencedDeclaration":5616,"src":"4464:11:30"},"referencedDeclaration":5616,"src":"4464:11:30","typeDescriptions":{"typeIdentifier":"t_struct$_ActionProof_$5616_storage_ptr","typeString":"struct ActionProof"}},"visibility":"internal"}],"name":"BundledChugSplashAction","nameLocation":"4402:23:30","nodeType":"StructDefinition","scope":5617,"src":"4395:89:30","visibility":"public"},{"canonicalName":"BundledChugSplashTarget","id":5610,"members":[{"constant":false,"id":5606,"mutability":"mutable","name":"target","nameLocation":"4540:6:30","nodeType":"VariableDeclaration","scope":5610,"src":"4523:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"},"typeName":{"id":5605,"nodeType":"UserDefinedTypeName","pathNode":{"id":5604,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"4523:16:30"},"referencedDeclaration":5542,"src":"4523:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"visibility":"internal"},{"constant":false,"id":5609,"mutability":"mutable","name":"siblings","nameLocation":"4562:8:30","nodeType":"VariableDeclaration","scope":5610,"src":"4552:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4552:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5608,"nodeType":"ArrayTypeName","src":"4552:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"name":"BundledChugSplashTarget","nameLocation":"4493:23:30","nodeType":"StructDefinition","scope":5617,"src":"4486:87:30","visibility":"public"},{"canonicalName":"ActionProof","id":5616,"members":[{"constant":false,"id":5612,"mutability":"mutable","name":"actionIndex","nameLocation":"4608:11:30","nodeType":"VariableDeclaration","scope":5616,"src":"4600:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5611,"name":"uint256","nodeType":"ElementaryTypeName","src":"4600:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5615,"mutability":"mutable","name":"siblings","nameLocation":"4635:8:30","nodeType":"VariableDeclaration","scope":5616,"src":"4625:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4625:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5614,"nodeType":"ArrayTypeName","src":"4625:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"name":"ActionProof","nameLocation":"4582:11:30","nodeType":"StructDefinition","scope":5617,"src":"4575:71:30","visibility":"public"}],"src":"32:4615:30"},"id":30},"contracts/ChugSplashManager.sol":{"ast":{"absolutePath":"contracts/ChugSplashManager.sol","exportedSymbols":{"ChugSplashActionType":[5545],"ChugSplashManager":[8014],"ChugSplashManagerEvents":[8183],"ChugSplashTarget":[5542],"ContextUpgradeable":[1795],"DeploymentState":[5519],"DeploymentStatus":[5553],"ERC2771ContextUpgradeable":[1170],"IAccessControl":[2184],"IChugSplashManager":[9711],"IChugSplashRegistry":[9774],"ICreate3":[9805],"IGasPriceCalculator":[9833],"IProxyAdapter":[9887],"MerkleTree":[951],"OwnableUpgradeable":[1083],"RawChugSplashAction":[5531],"ReentrancyGuardUpgradeable":[1423],"Semver":[9036],"Version":[5567]},"id":8015,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5618,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:31"},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"./ChugSplashDataTypes.sol","id":5624,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":5617,"src":"58:159:31","symbolAliases":[{"foreign":{"id":5619,"name":"DeploymentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"71:15:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5620,"name":"RawChugSplashAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"92:19:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5621,"name":"ChugSplashTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"117:16:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5622,"name":"ChugSplashActionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"139:20:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5623,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"165:16:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":5626,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":1084,"src":"218:107:31","symbolAliases":[{"foreign":{"id":5625,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1083,"src":"231:18:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IChugSplashRegistry.sol","file":"./interfaces/IChugSplashRegistry.sol","id":5628,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":9775,"src":"326:75:31","symbolAliases":[{"foreign":{"id":5627,"name":"IChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9774,"src":"335:19:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IChugSplashManager.sol","file":"./interfaces/IChugSplashManager.sol","id":5630,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":9712,"src":"402:73:31","symbolAliases":[{"foreign":{"id":5629,"name":"IChugSplashManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"411:18:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IProxyAdapter.sol","file":"./interfaces/IProxyAdapter.sol","id":5632,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":9888,"src":"476:63:31","symbolAliases":[{"foreign":{"id":5631,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"485:13:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol","file":"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol","id":5634,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":952,"src":"540:110:31","symbolAliases":[{"foreign":{"id":5633,"name":"Lib_MerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"553:14:31","typeDescriptions":{}},"local":"MerkleTree","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol","id":5636,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":1424,"src":"651:125:31","symbolAliases":[{"foreign":{"id":5635,"name":"ReentrancyGuardUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"664:26:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":5638,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":2185,"src":"777:83:31","symbolAliases":[{"foreign":{"id":5637,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"786:14:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICreate3.sol","file":"./interfaces/ICreate3.sol","id":5640,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":9806,"src":"861:53:31","symbolAliases":[{"foreign":{"id":5639,"name":"ICreate3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9805,"src":"870:8:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Semver.sol","file":"./Semver.sol","id":5643,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":9037,"src":"915:47:31","symbolAliases":[{"foreign":{"id":5641,"name":"Semver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"924:6:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5642,"name":"Version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"932:7:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IGasPriceCalculator.sol","file":"./interfaces/IGasPriceCalculator.sol","id":5645,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":9834,"src":"963:75:31","symbolAliases":[{"foreign":{"id":5644,"name":"IGasPriceCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9833,"src":"972:19:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol","id":5647,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":1171,"src":"1039:121:31","symbolAliases":[{"foreign":{"id":5646,"name":"ERC2771ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"1052:25:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","id":5649,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":1796,"src":"1161:106:31","symbolAliases":[{"foreign":{"id":5648,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1795,"src":"1174:18:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashManagerEvents.sol","file":"./ChugSplashManagerEvents.sol","id":5651,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8015,"sourceUnit":8184,"src":"1268:72:31","symbolAliases":[{"foreign":{"id":5650,"name":"ChugSplashManagerEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"1277:23:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5653,"name":"OwnableUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1083,"src":"2354:18:31"},"id":5654,"nodeType":"InheritanceSpecifier","src":"2354:18:31"},{"baseName":{"id":5655,"name":"ReentrancyGuardUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1423,"src":"2378:26:31"},"id":5656,"nodeType":"InheritanceSpecifier","src":"2378:26:31"},{"baseName":{"id":5657,"name":"Semver","nodeType":"IdentifierPath","referencedDeclaration":9036,"src":"2410:6:31"},"id":5658,"nodeType":"InheritanceSpecifier","src":"2410:6:31"},{"baseName":{"id":5659,"name":"IChugSplashManager","nodeType":"IdentifierPath","referencedDeclaration":9711,"src":"2422:18:31"},"id":5660,"nodeType":"InheritanceSpecifier","src":"2422:18:31"},{"baseName":{"id":5661,"name":"ERC2771ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1170,"src":"2446:25:31"},"id":5662,"nodeType":"InheritanceSpecifier","src":"2446:25:31"},{"baseName":{"id":5663,"name":"ChugSplashManagerEvents","nodeType":"IdentifierPath","referencedDeclaration":8183,"src":"2477:23:31"},"id":5664,"nodeType":"InheritanceSpecifier","src":"2477:23:31"}],"canonicalName":"ChugSplashManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":5652,"nodeType":"StructuredDocumentation","src":"1342:977:31","text":" @title ChugSplashManager\n @custom:version 1.0.0\n @notice This contract contains the logic for managing the entire lifecycle of a project's\ndeployments. It contains the functionality for proposing, approving, and executing deployments,\npaying remote executors, and exporting proxies out of the ChugSplash system if desired. It exists\nas a single implementation contract behind ChugSplashManagerProxy contracts.\nAfter a deployment is approved, it is executed in the following steps, which must occur in order.\n1. Execute all of the `DEPLOY_CONTRACT` actions using the `executeActions` function. This is\nfirst because it's possible for the constructor of a deployed contract to revert. If this\nhappens, we cancel the deployment before the proxies are modified in any way.\n2. The `initiateProxies` function.\n3. Execute all of the `SET_STORAGE` actions using the `executeActions` function.\n4. The `completeUpgrade` function."},"fullyImplemented":true,"id":8014,"linearizedBaseContracts":[8014,8183,1170,9711,9036,1423,1083,1795,1339],"name":"ChugSplashManager","nameLocation":"2329:17:31","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":5665,"nodeType":"StructuredDocumentation","src":"2507:82:31","text":" @notice Role required to be a remote executor for a deployment."},"id":5670,"mutability":"constant","name":"REMOTE_EXECUTOR_ROLE","nameLocation":"2620:20:31","nodeType":"VariableDeclaration","scope":8014,"src":"2594:82:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2594:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"52454d4f54455f4558454355544f525f524f4c45","id":5668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2653:22:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e982efbc2164e40fcd14da9a0408a971e4224cb50a113d83b1c90cd8c1434dd","typeString":"literal_string \"REMOTE_EXECUTOR_ROLE\""},"value":"REMOTE_EXECUTOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e982efbc2164e40fcd14da9a0408a971e4224cb50a113d83b1c90cd8c1434dd","typeString":"literal_string \"REMOTE_EXECUTOR_ROLE\""}],"id":5667,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2643:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2643:33:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"documentation":{"id":5671,"nodeType":"StructuredDocumentation","src":"2683:100:31","text":" @notice Role required to propose deployments through the ManagedService contract."},"id":5676,"mutability":"constant","name":"MANAGED_PROPOSER_ROLE","nameLocation":"2814:21:31","nodeType":"VariableDeclaration","scope":8014,"src":"2788:84:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2788:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d414e414745445f50524f504f5345525f524f4c45","id":5674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2848:23:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_1036d397acc4220751130e8fcc4ce6cb991a324073d229f09e751ac8624f19c0","typeString":"literal_string \"MANAGED_PROPOSER_ROLE\""},"value":"MANAGED_PROPOSER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1036d397acc4220751130e8fcc4ce6cb991a324073d229f09e751ac8624f19c0","typeString":"literal_string \"MANAGED_PROPOSER_ROLE\""}],"id":5673,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2838:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2838:34:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"documentation":{"id":5677,"nodeType":"StructuredDocumentation","src":"2879:122:31","text":" @notice The contract kind hash for contracts that do not use a proxy (i.e. immutable\ncontracts)."},"id":5682,"mutability":"constant","name":"IMMUTABLE_CONTRACT_KIND_HASH","nameLocation":"3032:28:31","nodeType":"VariableDeclaration","scope":8014,"src":"3006:79:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3006:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"696d6d757461626c65","id":5680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3073:11:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed693","typeString":"literal_string \"immutable\""},"value":"immutable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed693","typeString":"literal_string \"immutable\""}],"id":5679,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3063:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3063:22:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"baseFunctions":[9614],"constant":false,"documentation":{"id":5683,"nodeType":"StructuredDocumentation","src":"3092:61:31","text":" @notice Address of the ChugSplashRegistry."},"functionSelector":"7b103999","id":5686,"mutability":"immutable","name":"registry","nameLocation":"3195:8:31","nodeType":"VariableDeclaration","scope":8014,"src":"3158:45:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"},"typeName":{"id":5685,"nodeType":"UserDefinedTypeName","pathNode":{"id":5684,"name":"IChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":9774,"src":"3158:19:31"},"referencedDeclaration":9774,"src":"3158:19:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"visibility":"public"},{"constant":false,"documentation":{"id":5687,"nodeType":"StructuredDocumentation","src":"3210:59:31","text":" @notice Address of the Create3 contract."},"functionSelector":"bae4b95f","id":5689,"mutability":"immutable","name":"create3","nameLocation":"3299:7:31","nodeType":"VariableDeclaration","scope":8014,"src":"3274:32:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5688,"name":"address","nodeType":"ElementaryTypeName","src":"3274:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":5690,"nodeType":"StructuredDocumentation","src":"3313:70:31","text":" @notice Address of the GasPriceCalculator contract."},"functionSelector":"0523a04c","id":5693,"mutability":"immutable","name":"gasPriceCalculator","nameLocation":"3425:18:31","nodeType":"VariableDeclaration","scope":8014,"src":"3388:55:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"},"typeName":{"id":5692,"nodeType":"UserDefinedTypeName","pathNode":{"id":5691,"name":"IGasPriceCalculator","nodeType":"IdentifierPath","referencedDeclaration":9833,"src":"3388:19:31"},"referencedDeclaration":9833,"src":"3388:19:31","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"}},"visibility":"public"},{"constant":false,"documentation":{"id":5694,"nodeType":"StructuredDocumentation","src":"3450:66:31","text":" @notice Address of the ManagedService contract."},"functionSelector":"f2a7208d","id":5697,"mutability":"immutable","name":"managedService","nameLocation":"3553:14:31","nodeType":"VariableDeclaration","scope":8014,"src":"3521:46:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"},"typeName":{"id":5696,"nodeType":"UserDefinedTypeName","pathNode":{"id":5695,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":2184,"src":"3521:14:31"},"referencedDeclaration":2184,"src":"3521:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}},"visibility":"public"},{"constant":false,"documentation":{"id":5698,"nodeType":"StructuredDocumentation","src":"3574:610:31","text":" @notice Amount that must be stored in this contract in order to remotely execute a\ndeployment. It is not necessary to deposit this amount if the owner is self-executing their\ndeployment. The bond can be deposited by any account.\nThe owner can withdraw this amount whenever a deployment is not active. However, this amount\nwill be forfeited if the owner cancels a deployment that is in progress and within the\n`executionLockTime`. This is necessary to prevent owners from trolling the remote executor by\nimmediately cancelling and withdrawing funds."},"functionSelector":"2e0a6960","id":5700,"mutability":"immutable","name":"ownerBondAmount","nameLocation":"4214:15:31","nodeType":"VariableDeclaration","scope":8014,"src":"4189:40:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5699,"name":"uint256","nodeType":"ElementaryTypeName","src":"4189:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5701,"nodeType":"StructuredDocumentation","src":"4236:130:31","text":" @notice Amount of time for a remote executor to finish executing a deployment once they have\nclaimed it."},"functionSelector":"fff81d4c","id":5703,"mutability":"immutable","name":"executionLockTime","nameLocation":"4396:17:31","nodeType":"VariableDeclaration","scope":8014,"src":"4371:42:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5702,"name":"uint256","nodeType":"ElementaryTypeName","src":"4371:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5704,"nodeType":"StructuredDocumentation","src":"4420:299:31","text":" @notice Percentage that the remote executor profits from a deployment. This is denominated as\na percentage of the cost of execution. For example, if a deployment costs 1 gwei to execute\nand the executorPaymentPercentage is 10, then the executor will profit 0.1 gwei."},"functionSelector":"f220aca9","id":5706,"mutability":"immutable","name":"executorPaymentPercentage","nameLocation":"4749:25:31","nodeType":"VariableDeclaration","scope":8014,"src":"4724:50:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5705,"name":"uint256","nodeType":"ElementaryTypeName","src":"4724:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5707,"nodeType":"StructuredDocumentation","src":"4781:401:31","text":" @notice Percentage that the protocol creators profit during a remotely executed deployment.\nThis is denominated as a percentage of the cost of execution. For example, if a deployment\ncosts 1 gwei to execute and the protocolPaymentPercentage is 10, then the protocol will\nprofit 0.1 gwei. Note that the protocol does not profit during a self-executed deployment."},"functionSelector":"7521120f","id":5709,"mutability":"immutable","name":"protocolPaymentPercentage","nameLocation":"5212:25:31","nodeType":"VariableDeclaration","scope":8014,"src":"5187:50:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5708,"name":"uint256","nodeType":"ElementaryTypeName","src":"5187:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5710,"nodeType":"StructuredDocumentation","src":"5244:135:31","text":" @notice Mapping of executor addresses to the ETH amount stored in this contract that is\n         owed to them."},"functionSelector":"73b4a738","id":5714,"mutability":"mutable","name":"executorDebt","nameLocation":"5419:12:31","nodeType":"VariableDeclaration","scope":8014,"src":"5384:47:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5713,"keyType":{"id":5711,"name":"address","nodeType":"ElementaryTypeName","src":"5392:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"5384:27:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":5712,"name":"uint256","nodeType":"ElementaryTypeName","src":"5403:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":5715,"nodeType":"StructuredDocumentation","src":"5438:233:31","text":" @notice Maps an address to a boolean indicating if the address has been approved by the owner\nto propose deployments. Note that this does include proposers from the managed service (see\n`isProposer`)."},"functionSelector":"18177497","id":5719,"mutability":"mutable","name":"proposers","nameLocation":"5708:9:31","nodeType":"VariableDeclaration","scope":8014,"src":"5676:41:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":5718,"keyType":{"id":5716,"name":"address","nodeType":"ElementaryTypeName","src":"5684:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"5676:24:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":5717,"name":"bool","nodeType":"ElementaryTypeName","src":"5695:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":5720,"nodeType":"StructuredDocumentation","src":"5724:73:31","text":" @notice Mapping of deployment IDs to deployment state."},"id":5725,"mutability":"mutable","name":"_deployments","nameLocation":"5847:12:31","nodeType":"VariableDeclaration","scope":8014,"src":"5802:57:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState)"},"typeName":{"id":5724,"keyType":{"id":5721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5810:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5802:35:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState)"},"valueType":{"id":5723,"nodeType":"UserDefinedTypeName","pathNode":{"id":5722,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"5821:15:31"},"referencedDeclaration":5519,"src":"5821:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}}},"visibility":"internal"},{"baseFunctions":[9620],"constant":false,"documentation":{"id":5726,"nodeType":"StructuredDocumentation","src":"5866:61:31","text":" @notice Organization ID for this contract."},"functionSelector":"f0317111","id":5728,"mutability":"mutable","name":"organizationID","nameLocation":"5947:14:31","nodeType":"VariableDeclaration","scope":8014,"src":"5932:29:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5932:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"baseFunctions":[9666],"constant":false,"documentation":{"id":5729,"nodeType":"StructuredDocumentation","src":"5968:65:31","text":" @notice ID of the currently active deployment."},"functionSelector":"dfba66f0","id":5731,"mutability":"mutable","name":"activeDeploymentId","nameLocation":"6053:18:31","nodeType":"VariableDeclaration","scope":8014,"src":"6038:33:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6038:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":5732,"nodeType":"StructuredDocumentation","src":"6078:101:31","text":" @notice Total ETH amount stored in this contract that is owed to remote executors."},"functionSelector":"c6eb84e5","id":5734,"mutability":"mutable","name":"totalExecutorDebt","nameLocation":"6199:17:31","nodeType":"VariableDeclaration","scope":8014,"src":"6184:32:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5733,"name":"uint256","nodeType":"ElementaryTypeName","src":"6184:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5735,"nodeType":"StructuredDocumentation","src":"6223:106:31","text":" @notice Total ETH amount stored in this contract that is owed to the protocol creators."},"functionSelector":"bd8bcd89","id":5737,"mutability":"mutable","name":"totalProtocolDebt","nameLocation":"6349:17:31","nodeType":"VariableDeclaration","scope":8014,"src":"6334:32:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5736,"name":"uint256","nodeType":"ElementaryTypeName","src":"6334:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5738,"nodeType":"StructuredDocumentation","src":"6373:165:31","text":" @notice A boolean indicating if the owner of this contract has approved the ManagedService\ncontract to propose deployments on their behalf."},"functionSelector":"ef9fe8e4","id":5740,"mutability":"mutable","name":"allowManagedProposals","nameLocation":"6555:21:31","nodeType":"VariableDeclaration","scope":8014,"src":"6543:33:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5739,"name":"bool","nodeType":"ElementaryTypeName","src":"6543:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"documentation":{"id":5741,"nodeType":"StructuredDocumentation","src":"6583:74:31","text":" @notice Reverts if the caller is not a remote executor."},"errorSelector":"6696fa81","id":5743,"name":"CallerIsNotRemoteExecutor","nameLocation":"6668:25:31","nodeType":"ErrorDefinition","parameters":{"id":5742,"nodeType":"ParameterList","parameters":[],"src":"6693:2:31"},"src":"6662:34:31"},{"documentation":{"id":5744,"nodeType":"StructuredDocumentation","src":"6702:67:31","text":" @notice Reverts if the caller is not a proposer."},"errorSelector":"70f3b56f","id":5746,"name":"CallerIsNotProposer","nameLocation":"6780:19:31","nodeType":"ErrorDefinition","parameters":{"id":5745,"nodeType":"ParameterList","parameters":[],"src":"6799:2:31"},"src":"6774:28:31"},{"documentation":{"id":5747,"nodeType":"StructuredDocumentation","src":"6808:77:31","text":" @notice Reverts if the deployment state is not proposable."},"errorSelector":"b1c30cff","id":5749,"name":"DeploymentStateIsNotProposable","nameLocation":"6896:30:31","nodeType":"ErrorDefinition","parameters":{"id":5748,"nodeType":"ParameterList","parameters":[],"src":"6926:2:31"},"src":"6890:39:31"},{"documentation":{"id":5750,"nodeType":"StructuredDocumentation","src":"6935:163:31","text":" @notice Reverts if there isn't at least `OWNER_BOND_AMOUNT` in this contract. Only applies\nto deployments that will be remotely executed."},"errorSelector":"69c00fad","id":5752,"name":"InsufficientOwnerBond","nameLocation":"7109:21:31","nodeType":"ErrorDefinition","parameters":{"id":5751,"nodeType":"ParameterList","parameters":[],"src":"7130:2:31"},"src":"7103:30:31"},{"documentation":{"id":5753,"nodeType":"StructuredDocumentation","src":"7139:75:31","text":" @notice Reverts if the deployment state is not proposed."},"errorSelector":"50feacf8","id":5755,"name":"DeploymentIsNotProposed","nameLocation":"7225:23:31","nodeType":"ErrorDefinition","parameters":{"id":5754,"nodeType":"ParameterList","parameters":[],"src":"7248:2:31"},"src":"7219:32:31"},{"documentation":{"id":5756,"nodeType":"StructuredDocumentation","src":"7257:76:31","text":" @notice Reverts if there is another active deployment ID."},"errorSelector":"318cf479","id":5758,"name":"AnotherDeploymentInProgress","nameLocation":"7344:27:31","nodeType":"ErrorDefinition","parameters":{"id":5757,"nodeType":"ParameterList","parameters":[],"src":"7371:2:31"},"src":"7338:36:31"},{"documentation":{"id":5759,"nodeType":"StructuredDocumentation","src":"7380:81:31","text":" @notice Reverts if there is currently no active deployment ID."},"errorSelector":"5f0825a0","id":5761,"name":"NoActiveDeployment","nameLocation":"7472:18:31","nodeType":"ErrorDefinition","parameters":{"id":5760,"nodeType":"ParameterList","parameters":[],"src":"7490:2:31"},"src":"7466:27:31"},{"documentation":{"id":5762,"nodeType":"StructuredDocumentation","src":"7499:90:31","text":" @notice Reverts if a deployment can only be self-executed by the owner."},"errorSelector":"0bb32912","id":5764,"name":"RemoteExecutionDisabled","nameLocation":"7600:23:31","nodeType":"ErrorDefinition","parameters":{"id":5763,"nodeType":"ParameterList","parameters":[],"src":"7623:2:31"},"src":"7594:32:31"},{"documentation":{"id":5765,"nodeType":"StructuredDocumentation","src":"7632:105:31","text":" @notice Reverts if the deployment has already been claimed by another remote executor."},"errorSelector":"7ea3c87d","id":5767,"name":"DeploymentAlreadyClaimed","nameLocation":"7748:24:31","nodeType":"ErrorDefinition","parameters":{"id":5766,"nodeType":"ParameterList","parameters":[],"src":"7772:2:31"},"src":"7742:33:31"},{"documentation":{"id":5768,"nodeType":"StructuredDocumentation","src":"7781:61:31","text":" @notice Reverts if the amount equals zero."},"errorSelector":"5e85ae73","id":5770,"name":"AmountMustBeGreaterThanZero","nameLocation":"7853:27:31","nodeType":"ErrorDefinition","parameters":{"id":5769,"nodeType":"ParameterList","parameters":[],"src":"7880:2:31"},"src":"7847:36:31"},{"documentation":{"id":5771,"nodeType":"StructuredDocumentation","src":"7889:97:31","text":" @notice Reverts if the remote executor has insufficient debt in this contract."},"errorSelector":"c70453ea","id":5773,"name":"InsufficientExecutorDebt","nameLocation":"7997:24:31","nodeType":"ErrorDefinition","parameters":{"id":5772,"nodeType":"ParameterList","parameters":[],"src":"8021:2:31"},"src":"7991:33:31"},{"documentation":{"id":5774,"nodeType":"StructuredDocumentation","src":"8030:158:31","text":" @notice Reverts if there's not enough funds in the contract pay the protocol fee and the\n  withdraw amount requested by the executor."},"errorSelector":"356680b7","id":5776,"name":"InsufficientFunds","nameLocation":"8199:17:31","nodeType":"ErrorDefinition","parameters":{"id":5775,"nodeType":"ParameterList","parameters":[],"src":"8216:2:31"},"src":"8193:26:31"},{"documentation":{"id":5777,"nodeType":"StructuredDocumentation","src":"8225:135:31","text":" @notice Reverts if a withdrawal transaction fails. This is likely due to insufficient funds\nin this contract."},"errorSelector":"27fcd9d1","id":5779,"name":"WithdrawalFailed","nameLocation":"8371:16:31","nodeType":"ErrorDefinition","parameters":{"id":5778,"nodeType":"ParameterList","parameters":[],"src":"8387:2:31"},"src":"8365:25:31"},{"documentation":{"id":5780,"nodeType":"StructuredDocumentation","src":"8396:78:31","text":" @notice Reverts if there is no bytecode at a given address."},"errorSelector":"58796ea8","id":5782,"name":"ContractDoesNotExist","nameLocation":"8485:20:31","nodeType":"ErrorDefinition","parameters":{"id":5781,"nodeType":"ParameterList","parameters":[],"src":"8505:2:31"},"src":"8479:29:31"},{"documentation":{"id":5783,"nodeType":"StructuredDocumentation","src":"8514:75:31","text":" @notice Reverts if an invalid contract kind is provided."},"errorSelector":"6602115a","id":5785,"name":"InvalidContractKind","nameLocation":"8600:19:31","nodeType":"ErrorDefinition","parameters":{"id":5784,"nodeType":"ParameterList","parameters":[],"src":"8619:2:31"},"src":"8594:28:31"},{"documentation":{"id":5786,"nodeType":"StructuredDocumentation","src":"8628:103:31","text":" @notice Reverts if the call to export ownership of a proxy from this contract fails."},"errorSelector":"ed9af691","id":5788,"name":"ProxyExportFailed","nameLocation":"8742:17:31","nodeType":"ErrorDefinition","parameters":{"id":5787,"nodeType":"ParameterList","parameters":[],"src":"8759:2:31"},"src":"8736:26:31"},{"documentation":{"id":5789,"nodeType":"StructuredDocumentation","src":"8768:101:31","text":" @notice Reverts if an empty actions array is provided as input to the transaction."},"errorSelector":"03250eda","id":5791,"name":"EmptyActionsArray","nameLocation":"8880:17:31","nodeType":"ErrorDefinition","parameters":{"id":5790,"nodeType":"ParameterList","parameters":[],"src":"8897:2:31"},"src":"8874:26:31"},{"documentation":{"id":5792,"nodeType":"StructuredDocumentation","src":"8906:94:31","text":" @notice Reverts if the action has already been executed in this deployment."},"errorSelector":"6d41cd6c","id":5794,"name":"ActionAlreadyExecuted","nameLocation":"9011:21:31","nodeType":"ErrorDefinition","parameters":{"id":5793,"nodeType":"ParameterList","parameters":[],"src":"9032:2:31"},"src":"9005:30:31"},{"documentation":{"id":5795,"nodeType":"StructuredDocumentation","src":"9041:74:31","text":" @notice Reverts if an invalid Merkle proof is provided."},"errorSelector":"b05e92fa","id":5797,"name":"InvalidMerkleProof","nameLocation":"9126:18:31","nodeType":"ErrorDefinition","parameters":{"id":5796,"nodeType":"ParameterList","parameters":[],"src":"9144:2:31"},"src":"9120:27:31"},{"documentation":{"id":5798,"nodeType":"StructuredDocumentation","src":"9153:96:31","text":" @notice Reverts if the action type is not `DEPLOY_CONTRACT` or `SET_STORAGE`."},"errorSelector":"88dd20d4","id":5800,"name":"InvalidActionType","nameLocation":"9260:17:31","nodeType":"ErrorDefinition","parameters":{"id":5799,"nodeType":"ParameterList","parameters":[],"src":"9277:2:31"},"src":"9254:26:31"},{"documentation":{"id":5801,"nodeType":"StructuredDocumentation","src":"9286:131:31","text":" @notice Reverts if an upgrade is initiated before all of the contracts are deployed via\n`executeActions`."},"errorSelector":"415522d0","id":5803,"name":"InitiatedUpgradeTooEarly","nameLocation":"9428:24:31","nodeType":"ErrorDefinition","parameters":{"id":5802,"nodeType":"ParameterList","parameters":[],"src":"9452:2:31"},"src":"9422:33:31"},{"documentation":{"id":5804,"nodeType":"StructuredDocumentation","src":"9461:84:31","text":" @notice Reverts if the deployment is not in the `APPROVED` state."},"errorSelector":"cb6f6ae4","id":5806,"name":"DeploymentIsNotApproved","nameLocation":"9556:23:31","nodeType":"ErrorDefinition","parameters":{"id":5805,"nodeType":"ParameterList","parameters":[],"src":"9579:2:31"},"src":"9550:32:31"},{"documentation":{"id":5807,"nodeType":"StructuredDocumentation","src":"9588:138:31","text":" @notice Reverts if the provided number of targets does not match the actual number of targets\nin the deployment."},"errorSelector":"4f838f7c","id":5809,"name":"IncorrectNumberOfTargets","nameLocation":"9737:24:31","nodeType":"ErrorDefinition","parameters":{"id":5808,"nodeType":"ParameterList","parameters":[],"src":"9761:2:31"},"src":"9731:33:31"},{"documentation":{"id":5810,"nodeType":"StructuredDocumentation","src":"9770:96:31","text":" @notice Reverts if a non-proxy contract type is used instead of a proxy type."},"errorSelector":"c0e6f380","id":5812,"name":"OnlyProxiesAllowed","nameLocation":"9877:18:31","nodeType":"ErrorDefinition","parameters":{"id":5811,"nodeType":"ParameterList","parameters":[],"src":"9895:2:31"},"src":"9871:27:31"},{"documentation":{"id":5813,"nodeType":"StructuredDocumentation","src":"9904:87:31","text":" @notice Reverts if the call to initiate an upgrade on a proxy fails."},"errorSelector":"3fb523ca","id":5815,"name":"FailedToInitiateUpgrade","nameLocation":"10002:23:31","nodeType":"ErrorDefinition","parameters":{"id":5814,"nodeType":"ParameterList","parameters":[],"src":"10025:2:31"},"src":"9996:32:31"},{"documentation":{"id":5816,"nodeType":"StructuredDocumentation","src":"10034:107:31","text":" @notice Reverts if an upgrade is completed before all of the actions have been executed."},"errorSelector":"fbd9e675","id":5818,"name":"FinalizedUpgradeTooEarly","nameLocation":"10152:24:31","nodeType":"ErrorDefinition","parameters":{"id":5817,"nodeType":"ParameterList","parameters":[],"src":"10176:2:31"},"src":"10146:33:31"},{"documentation":{"id":5819,"nodeType":"StructuredDocumentation","src":"10185:87:31","text":" @notice Reverts if the call to finalize an upgrade on a proxy fails."},"errorSelector":"d764f04e","id":5821,"name":"FailedToFinalizeUpgrade","nameLocation":"10283:23:31","nodeType":"ErrorDefinition","parameters":{"id":5820,"nodeType":"ParameterList","parameters":[],"src":"10306:2:31"},"src":"10277:32:31"},{"documentation":{"id":5822,"nodeType":"StructuredDocumentation","src":"10315:93:31","text":" @notice Reverts if the deployment is not in the `PROXIES_INITIATED` state."},"errorSelector":"b38cba48","id":5824,"name":"ProxiesAreNotInitiated","nameLocation":"10419:22:31","nodeType":"ErrorDefinition","parameters":{"id":5823,"nodeType":"ParameterList","parameters":[],"src":"10441:2:31"},"src":"10413:31:31"},{"documentation":{"id":5825,"nodeType":"StructuredDocumentation","src":"10450:92:31","text":" @notice Reverts if the call to modify a proxy's storage slot value fails."},"errorSelector":"ac5785a5","id":5827,"name":"SetStorageFailed","nameLocation":"10553:16:31","nodeType":"ErrorDefinition","parameters":{"id":5826,"nodeType":"ParameterList","parameters":[],"src":"10569:2:31"},"src":"10547:25:31"},{"documentation":{"id":5828,"nodeType":"StructuredDocumentation","src":"10578:76:31","text":" @notice Reverts if the caller is not a selected executor."},"errorSelector":"06ee4295","id":5830,"name":"CallerIsNotSelectedExecutor","nameLocation":"10665:27:31","nodeType":"ErrorDefinition","parameters":{"id":5829,"nodeType":"ParameterList","parameters":[],"src":"10692:2:31"},"src":"10659:36:31"},{"documentation":{"id":5831,"nodeType":"StructuredDocumentation","src":"10701:66:31","text":" @notice Reverts if the caller is not the owner."},"errorSelector":"6db2465f","id":5833,"name":"CallerIsNotOwner","nameLocation":"10778:16:31","nodeType":"ErrorDefinition","parameters":{"id":5832,"nodeType":"ParameterList","parameters":[],"src":"10794:2:31"},"src":"10772:25:31"},{"documentation":{"id":5834,"nodeType":"StructuredDocumentation","src":"10803:89:31","text":" @notice Reverts if the low-level delegatecall to get an address fails."},"errorSelector":"da45f5f8","id":5836,"name":"FailedToGetAddress","nameLocation":"10903:18:31","nodeType":"ErrorDefinition","parameters":{"id":5835,"nodeType":"ParameterList","parameters":[],"src":"10921:2:31"},"src":"10897:27:31"},{"body":{"id":5852,"nodeType":"Block","src":"11047:151:31","statements":[{"condition":{"id":5845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11061:59:31","subExpression":{"arguments":[{"id":5841,"name":"REMOTE_EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"11085:20:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5842,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"11107:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11107:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5839,"name":"managedService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"11062:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}},"id":5840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":2151,"src":"11062:22:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":5844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11062:58:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5850,"nodeType":"IfStatement","src":"11057:124:31","trueBody":{"id":5849,"nodeType":"Block","src":"11122:59:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5846,"name":"CallerIsNotRemoteExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5743,"src":"11143:25:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11143:27:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5848,"nodeType":"RevertStatement","src":"11136:34:31"}]}},{"id":5851,"nodeType":"PlaceholderStatement","src":"11190:1:31"}]},"documentation":{"id":5837,"nodeType":"StructuredDocumentation","src":"10930:88:31","text":" @notice Modifier that reverts if the caller is not a remote executor."},"id":5853,"name":"onlyExecutor","nameLocation":"11032:12:31","nodeType":"ModifierDefinition","parameters":{"id":5838,"nodeType":"ParameterList","parameters":[],"src":"11044:2:31"},"src":"11023:175:31","virtual":false,"visibility":"internal"},{"body":{"id":5924,"nodeType":"Block","src":"12678:377:31","statements":[{"expression":{"id":5894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5892,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"12688:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5893,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"12699:9:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"src":"12688:20:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":5895,"nodeType":"ExpressionStatement","src":"12688:20:31"},{"expression":{"id":5898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5896,"name":"create3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"12718:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5897,"name":"_create3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5859,"src":"12728:8:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12718:18:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5899,"nodeType":"ExpressionStatement","src":"12718:18:31"},{"expression":{"id":5902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5900,"name":"gasPriceCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5693,"src":"12746:18:31","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5901,"name":"_gasPriceCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5862,"src":"12767:19:31","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"}},"src":"12746:40:31","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"}},"id":5903,"nodeType":"ExpressionStatement","src":"12746:40:31"},{"expression":{"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5904,"name":"managedService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"12796:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5905,"name":"_managedService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5865,"src":"12813:15:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}},"src":"12796:32:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}},"id":5907,"nodeType":"ExpressionStatement","src":"12796:32:31"},{"expression":{"id":5910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5908,"name":"executionLockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5703,"src":"12838:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5909,"name":"_executionLockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"12858:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12838:38:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5911,"nodeType":"ExpressionStatement","src":"12838:38:31"},{"expression":{"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5912,"name":"ownerBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"12886:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5913,"name":"_ownerBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"12904:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12886:34:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5915,"nodeType":"ExpressionStatement","src":"12886:34:31"},{"expression":{"id":5918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5916,"name":"executorPaymentPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5706,"src":"12930:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5917,"name":"_executorPaymentPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"12958:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12930:54:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5919,"nodeType":"ExpressionStatement","src":"12930:54:31"},{"expression":{"id":5922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5920,"name":"protocolPaymentPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"12994:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5921,"name":"_protocolPaymentPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"13022:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12994:54:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5923,"nodeType":"ExpressionStatement","src":"12994:54:31"}]},"documentation":{"id":5854,"nodeType":"StructuredDocumentation","src":"11204:951:31","text":" @param _registry                  Address of the ChugSplashRegistry.\n @param _create3                   Address of the Create3 contract.\n @param _gasPriceCalculator        Address of the GasPriceCalculator contract.\n @param _managedService            Address of the ManagedService contract.\n @param _executionLockTime         Amount of time for a remote executor to completely execute\na deployment after claiming it.\n @param _ownerBondAmount           Amount that must be deposited in this contract in order to\n                                   remote execute a deployment.\n @param _executorPaymentPercentage Percentage that an executor will profit from completing a\ndeployment.\n @param _protocolPaymentPercentage Percentage that the protocol creators will profit from\ncompleting a deployment.\n @param _version                   Version of this contract."},"id":5925,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":5881,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5876,"src":"12573:8:31","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":5882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"major","nodeType":"MemberAccess","referencedDeclaration":5562,"src":"12573:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5883,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5876,"src":"12589:8:31","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":5884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minor","nodeType":"MemberAccess","referencedDeclaration":5564,"src":"12589:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5885,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5876,"src":"12605:8:31","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":5886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"patch","nodeType":"MemberAccess","referencedDeclaration":5566,"src":"12605:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5887,"kind":"baseConstructorSpecifier","modifierName":{"id":5880,"name":"Semver","nodeType":"IdentifierPath","referencedDeclaration":9036,"src":"12566:6:31"},"nodeType":"ModifierInvocation","src":"12566:54:31"},{"arguments":[{"id":5889,"name":"_trustedForwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5878,"src":"12655:17:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":5890,"kind":"baseConstructorSpecifier","modifierName":{"id":5888,"name":"ERC2771ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1170,"src":"12629:25:31"},"nodeType":"ModifierInvocation","src":"12629:44:31"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5857,"mutability":"mutable","name":"_registry","nameLocation":"12201:9:31","nodeType":"VariableDeclaration","scope":5925,"src":"12181:29:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"},"typeName":{"id":5856,"nodeType":"UserDefinedTypeName","pathNode":{"id":5855,"name":"IChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":9774,"src":"12181:19:31"},"referencedDeclaration":9774,"src":"12181:19:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"visibility":"internal"},{"constant":false,"id":5859,"mutability":"mutable","name":"_create3","nameLocation":"12228:8:31","nodeType":"VariableDeclaration","scope":5925,"src":"12220:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5858,"name":"address","nodeType":"ElementaryTypeName","src":"12220:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5862,"mutability":"mutable","name":"_gasPriceCalculator","nameLocation":"12266:19:31","nodeType":"VariableDeclaration","scope":5925,"src":"12246:39:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"},"typeName":{"id":5861,"nodeType":"UserDefinedTypeName","pathNode":{"id":5860,"name":"IGasPriceCalculator","nodeType":"IdentifierPath","referencedDeclaration":9833,"src":"12246:19:31"},"referencedDeclaration":9833,"src":"12246:19:31","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"}},"visibility":"internal"},{"constant":false,"id":5865,"mutability":"mutable","name":"_managedService","nameLocation":"12310:15:31","nodeType":"VariableDeclaration","scope":5925,"src":"12295:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"},"typeName":{"id":5864,"nodeType":"UserDefinedTypeName","pathNode":{"id":5863,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":2184,"src":"12295:14:31"},"referencedDeclaration":2184,"src":"12295:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}},"visibility":"internal"},{"constant":false,"id":5867,"mutability":"mutable","name":"_executionLockTime","nameLocation":"12343:18:31","nodeType":"VariableDeclaration","scope":5925,"src":"12335:26:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5866,"name":"uint256","nodeType":"ElementaryTypeName","src":"12335:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5869,"mutability":"mutable","name":"_ownerBondAmount","nameLocation":"12379:16:31","nodeType":"VariableDeclaration","scope":5925,"src":"12371:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5868,"name":"uint256","nodeType":"ElementaryTypeName","src":"12371:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5871,"mutability":"mutable","name":"_executorPaymentPercentage","nameLocation":"12413:26:31","nodeType":"VariableDeclaration","scope":5925,"src":"12405:34:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5870,"name":"uint256","nodeType":"ElementaryTypeName","src":"12405:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5873,"mutability":"mutable","name":"_protocolPaymentPercentage","nameLocation":"12457:26:31","nodeType":"VariableDeclaration","scope":5925,"src":"12449:34:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5872,"name":"uint256","nodeType":"ElementaryTypeName","src":"12449:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5876,"mutability":"mutable","name":"_version","nameLocation":"12508:8:31","nodeType":"VariableDeclaration","scope":5925,"src":"12493:23:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version"},"typeName":{"id":5875,"nodeType":"UserDefinedTypeName","pathNode":{"id":5874,"name":"Version","nodeType":"IdentifierPath","referencedDeclaration":5567,"src":"12493:7:31"},"referencedDeclaration":5567,"src":"12493:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"}},"visibility":"internal"},{"constant":false,"id":5878,"mutability":"mutable","name":"_trustedForwarder","nameLocation":"12534:17:31","nodeType":"VariableDeclaration","scope":5925,"src":"12526:25:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5877,"name":"address","nodeType":"ElementaryTypeName","src":"12526:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12171:386:31"},"returnParameters":{"id":5891,"nodeType":"ParameterList","parameters":[],"src":"12678:0:31"},"scope":8014,"src":"12160:895:31","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5942,"nodeType":"Block","src":"13163:102:31","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5930,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"13191:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13191:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5932,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13205:3:31","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"13205:9:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5929,"name":"ETHDeposited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8141,"src":"13178:12:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13178:37:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5935,"nodeType":"EmitStatement","src":"13173:42:31"},{"expression":{"arguments":[{"hexValue":"4554484465706f7369746564","id":5939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13243:14:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_e81a5d0c54f32743c4dddc3623afc15dd89832f300e26f5cb271ae1f3f967da4","typeString":"literal_string \"ETHDeposited\""},"value":"ETHDeposited"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e81a5d0c54f32743c4dddc3623afc15dd89832f300e26f5cb271ae1f3f967da4","typeString":"literal_string \"ETHDeposited\""}],"expression":{"id":5936,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"13225:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"13225:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":5940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13225:33:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5941,"nodeType":"ExpressionStatement","src":"13225:33:31"}]},"documentation":{"id":5926,"nodeType":"StructuredDocumentation","src":"13061:70:31","text":" @notice Allows anyone to send ETH to this contract."},"id":5943,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5927,"nodeType":"ParameterList","parameters":[],"src":"13143:2:31"},"returnParameters":{"id":5928,"nodeType":"ParameterList","parameters":[],"src":"13163:0:31"},"scope":8014,"src":"13136:129:31","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[9601],"body":{"id":5991,"nodeType":"Block","src":"13843:383:31","statements":[{"assignments":[5954,5956,5958],"declarations":[{"constant":false,"id":5954,"mutability":"mutable","name":"_owner","nameLocation":"13862:6:31","nodeType":"VariableDeclaration","scope":5991,"src":"13854:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5953,"name":"address","nodeType":"ElementaryTypeName","src":"13854:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5956,"mutability":"mutable","name":"_organizationID","nameLocation":"13878:15:31","nodeType":"VariableDeclaration","scope":5991,"src":"13870:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13870:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5958,"mutability":"mutable","name":"_allowManagedProposals","nameLocation":"13900:22:31","nodeType":"VariableDeclaration","scope":5991,"src":"13895:27:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5957,"name":"bool","nodeType":"ElementaryTypeName","src":"13895:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5970,"initialValue":{"arguments":[{"id":5961,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"13950:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13970:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5962,"name":"address","nodeType":"ElementaryTypeName","src":"13970:7:31","typeDescriptions":{}}},{"id":5965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13979:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13979:7:31","typeDescriptions":{}}},{"id":5967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13988:4:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5966,"name":"bool","nodeType":"ElementaryTypeName","src":"13988:4:31","typeDescriptions":{}}}],"id":5968,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13969:24:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bool_$_$","typeString":"tuple(type(address),type(bytes32),type(bool))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bool_$_$","typeString":"tuple(type(address),type(bytes32),type(bool))"}],"expression":{"id":5959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13926:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"13926:10:31","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13926:77:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes32_$_t_bool_$","typeString":"tuple(address payable,bytes32,bool)"}},"nodeType":"VariableDeclarationStatement","src":"13853:150:31"},{"expression":{"id":5973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5971,"name":"organizationID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5728,"src":"14014:14:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5972,"name":"_organizationID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5956,"src":"14031:15:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14014:32:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5974,"nodeType":"ExpressionStatement","src":"14014:32:31"},{"expression":{"id":5977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5975,"name":"allowManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"14056:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5976,"name":"_allowManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5958,"src":"14080:22:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14056:46:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5978,"nodeType":"ExpressionStatement","src":"14056:46:31"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5979,"name":"__ReentrancyGuard_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1362,"src":"14113:22:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14113:24:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5981,"nodeType":"ExpressionStatement","src":"14113:24:31"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5982,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":978,"src":"14147:14:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14147:16:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5984,"nodeType":"ExpressionStatement","src":"14147:16:31"},{"expression":{"arguments":[{"id":5986,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5954,"src":"14192:6:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5985,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"14173:18:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14173:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5988,"nodeType":"ExpressionStatement","src":"14173:26:31"},{"expression":{"hexValue":"","id":5989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14217:2:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":5952,"id":5990,"nodeType":"Return","src":"14210:9:31"}]},"documentation":{"id":5944,"nodeType":"StructuredDocumentation","src":"13271:483:31","text":" @inheritdoc IChugSplashManager\n @param _data Initialization data. We expect the following data, ABI-encoded:\n              - address _owner: Address of the owner of this contract.\n              - bytes32 _organizationID: Organization ID for this contract.\n              - bool _allowManagedProposals: Whether or not to allow upgrade proposals from\n                the ManagedService contract.\n @return Empty bytes."},"functionSelector":"439fab91","id":5992,"implemented":true,"kind":"function","modifiers":[{"id":5949,"kind":"modifierInvocation","modifierName":{"id":5948,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"13808:11:31"},"nodeType":"ModifierInvocation","src":"13808:11:31"}],"name":"initialize","nameLocation":"13768:10:31","nodeType":"FunctionDefinition","parameters":{"id":5947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5946,"mutability":"mutable","name":"_data","nameLocation":"13792:5:31","nodeType":"VariableDeclaration","scope":5992,"src":"13779:18:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5945,"name":"bytes","nodeType":"ElementaryTypeName","src":"13779:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13778:20:31"},"returnParameters":{"id":5952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5992,"src":"13829:12:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5950,"name":"bytes","nodeType":"ElementaryTypeName","src":"13829:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13828:14:31"},"scope":8014,"src":"13759:467:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9656],"body":{"id":6148,"nodeType":"Block","src":"15568:1629:31","statements":[{"condition":{"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15582:25:31","subExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6011,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"15594:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15594:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6010,"name":"isProposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7504,"src":"15583:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15583:24:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6019,"nodeType":"IfStatement","src":"15578:84:31","trueBody":{"id":6018,"nodeType":"Block","src":"15609:53:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6015,"name":"CallerIsNotProposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5746,"src":"15630:19:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15630:21:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6017,"nodeType":"RevertStatement","src":"15623:28:31"}]}},{"assignments":[6021],"declarations":[{"constant":false,"id":6021,"mutability":"mutable","name":"deploymentId","nameLocation":"15718:12:31","nodeType":"VariableDeclaration","scope":6148,"src":"15710:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15710:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6033,"initialValue":{"arguments":[{"arguments":[{"id":6025,"name":"_actionRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"15784:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6026,"name":"_targetRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"15813:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6027,"name":"_numActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"15842:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6028,"name":"_numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"15871:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6029,"name":"_numImmutableContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"15900:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6030,"name":"_configUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"15940:10:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6023,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15756:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"15756:10:31","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15756:208:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6022,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15733:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15733:241:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15710:264:31"},{"assignments":[6036],"declarations":[{"constant":false,"id":6036,"mutability":"mutable","name":"deployment","nameLocation":"16009:10:31","nodeType":"VariableDeclaration","scope":6148,"src":"15985:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":6035,"nodeType":"UserDefinedTypeName","pathNode":{"id":6034,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"15985:15:31"},"referencedDeclaration":5519,"src":"15985:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":6040,"initialValue":{"baseExpression":{"id":6037,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"16022:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":6039,"indexExpression":{"id":6038,"name":"deploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"16035:12:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16022:26:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15985:63:31"},{"assignments":[6043],"declarations":[{"constant":false,"id":6043,"mutability":"mutable","name":"status","nameLocation":"16076:6:31","nodeType":"VariableDeclaration","scope":6148,"src":"16059:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"typeName":{"id":6042,"nodeType":"UserDefinedTypeName","pathNode":{"id":6041,"name":"DeploymentStatus","nodeType":"IdentifierPath","referencedDeclaration":5553,"src":"16059:16:31"},"referencedDeclaration":5553,"src":"16059:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"visibility":"internal"}],"id":6046,"initialValue":{"expression":{"id":6044,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16085:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"16085:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"VariableDeclarationStatement","src":"16059:43:31"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6047,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6043,"src":"16129:6:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6048,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"16139:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"EMPTY","nodeType":"MemberAccess","referencedDeclaration":5546,"src":"16139:22:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"16129:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":6054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6051,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6043,"src":"16177:6:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6052,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"16187:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"COMPLETED","nodeType":"MemberAccess","referencedDeclaration":5550,"src":"16187:26:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"16177:36:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16129:84:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":6059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6056,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6043,"src":"16229:6:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6057,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"16239:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CANCELLED","nodeType":"MemberAccess","referencedDeclaration":5551,"src":"16239:26:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"16229:36:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16129:136:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":6064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6061,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6043,"src":"16281:6:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6062,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"16291:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"FAILED","nodeType":"MemberAccess","referencedDeclaration":5552,"src":"16291:23:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"16281:33:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16129:185:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6070,"nodeType":"IfStatement","src":"16112:277:31","trueBody":{"id":6069,"nodeType":"Block","src":"16325:64:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6066,"name":"DeploymentStateIsNotProposable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"16346:30:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16346:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6068,"nodeType":"RevertStatement","src":"16339:39:31"}]}},{"expression":{"id":6076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6071,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16399:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"16399:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":6074,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"16419:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PROPOSED","nodeType":"MemberAccess","referencedDeclaration":5547,"src":"16419:25:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"16399:45:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"id":6077,"nodeType":"ExpressionStatement","src":"16399:45:31"},{"expression":{"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6078,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16454:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"actionRoot","nodeType":"MemberAccess","referencedDeclaration":5504,"src":"16454:21:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6081,"name":"_actionRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"16478:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16454:35:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6083,"nodeType":"ExpressionStatement","src":"16454:35:31"},{"expression":{"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6084,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16499:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"targetRoot","nodeType":"MemberAccess","referencedDeclaration":5506,"src":"16499:21:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6087,"name":"_targetRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"16523:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16499:35:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6089,"nodeType":"ExpressionStatement","src":"16499:35:31"},{"expression":{"id":6094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6090,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16544:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"numImmutableContracts","nodeType":"MemberAccess","referencedDeclaration":5508,"src":"16544:32:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6093,"name":"_numImmutableContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"16579:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16544:57:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6095,"nodeType":"ExpressionStatement","src":"16544:57:31"},{"expression":{"id":6104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6096,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16611:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"actions","nodeType":"MemberAccess","referencedDeclaration":5500,"src":"16611:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage","typeString":"bool[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6102,"name":"_numActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"16643:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16632:10:31","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":6099,"name":"bool","nodeType":"ElementaryTypeName","src":"16636:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6100,"nodeType":"ArrayTypeName","src":"16636:6:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":6103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16632:23:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"src":"16611:44:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage","typeString":"bool[] storage ref"}},"id":6105,"nodeType":"ExpressionStatement","src":"16611:44:31"},{"expression":{"id":6110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6106,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16665:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5502,"src":"16665:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6109,"name":"_numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"16686:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16665:32:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6111,"nodeType":"ExpressionStatement","src":"16665:32:31"},{"expression":{"id":6116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6112,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16707:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"16707:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6115,"name":"_remoteExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"16736:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16707:45:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6117,"nodeType":"ExpressionStatement","src":"16707:45:31"},{"expression":{"id":6122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6118,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"16762:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"configUri","nodeType":"MemberAccess","referencedDeclaration":5518,"src":"16762:20:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6121,"name":"_configUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"16785:10:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"16762:33:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6123,"nodeType":"ExpressionStatement","src":"16762:33:31"},{"eventCall":{"arguments":[{"id":6125,"name":"deploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"16853:12:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6126,"name":"_actionRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"16879:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6127,"name":"_targetRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"16904:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6128,"name":"_numActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"16929:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6129,"name":"_numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"16954:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6130,"name":"_numImmutableContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"16979:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6131,"name":"_configUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"17015:10:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6132,"name":"_remoteExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"17039:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6133,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"17069:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17069:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6124,"name":"ChugSplashDeploymentProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8037,"src":"16811:28:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_bool_$_t_address_$returns$__$","typeString":"function (bytes32,bytes32,bytes32,uint256,uint256,uint256,string memory,bool,address)"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16811:280:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6136,"nodeType":"EmitStatement","src":"16806:285:31"},{"expression":{"arguments":[{"hexValue":"4368756753706c6173684465706c6f796d656e7450726f706f736564","id":6140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17127:30:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_210633fb5d2065404c8ca8ad14cbb7338593f94b74fe8fe406f9055331373ee5","typeString":"literal_string \"ChugSplashDeploymentProposed\""},"value":"ChugSplashDeploymentProposed"},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6143,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"17176:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17176:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6141,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17159:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"17159:16:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17159:30:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_210633fb5d2065404c8ca8ad14cbb7338593f94b74fe8fe406f9055331373ee5","typeString":"literal_string \"ChugSplashDeploymentProposed\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6137,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"17101:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announceWithData","nodeType":"MemberAccess","referencedDeclaration":9766,"src":"17101:25:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) external"}},"id":6146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17101:89:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6147,"nodeType":"ExpressionStatement","src":"17101:89:31"}]},"documentation":{"id":5993,"nodeType":"StructuredDocumentation","src":"14232:1080:31","text":" @notice Propose a new deployment. No action can be taken on the deployment until it is\napproved via the `approve` function. Only callable by the owner of this contract, a proposer\nthat has been approved by the owner, or the ManagedService contract, if\n`allowManagedProposals` is true. These permissions prevent spam.\n @param _actionRoot Root of the Merkle tree containing the actions for the deployment.\n This may be `bytes32(0)` if there are no actions in the deployment.\n @param _targetRoot Root of the Merkle tree containing the targets for the deployment.\n This may be `bytes32(0)` if there are no targets in the deployment.\n @param _numImmutableContracts Number of non-proxy contracts in the deployment.\n @param _numActions Number of actions in the deployment.\n @param _numTargets Number of targets in the deployment.\n @param _configUri  URI pointing to the config file for the deployment.\n @param _remoteExecution Whether or not to allow remote execution of the deployment."},"functionSelector":"a7882f93","id":6149,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nameLocation":"15326:7:31","nodeType":"FunctionDefinition","parameters":{"id":6008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5995,"mutability":"mutable","name":"_actionRoot","nameLocation":"15351:11:31","nodeType":"VariableDeclaration","scope":6149,"src":"15343:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15343:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5997,"mutability":"mutable","name":"_targetRoot","nameLocation":"15380:11:31","nodeType":"VariableDeclaration","scope":6149,"src":"15372:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15372:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5999,"mutability":"mutable","name":"_numActions","nameLocation":"15409:11:31","nodeType":"VariableDeclaration","scope":6149,"src":"15401:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5998,"name":"uint256","nodeType":"ElementaryTypeName","src":"15401:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6001,"mutability":"mutable","name":"_numTargets","nameLocation":"15438:11:31","nodeType":"VariableDeclaration","scope":6149,"src":"15430:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6000,"name":"uint256","nodeType":"ElementaryTypeName","src":"15430:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6003,"mutability":"mutable","name":"_numImmutableContracts","nameLocation":"15467:22:31","nodeType":"VariableDeclaration","scope":6149,"src":"15459:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6002,"name":"uint256","nodeType":"ElementaryTypeName","src":"15459:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6005,"mutability":"mutable","name":"_configUri","nameLocation":"15513:10:31","nodeType":"VariableDeclaration","scope":6149,"src":"15499:24:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6004,"name":"string","nodeType":"ElementaryTypeName","src":"15499:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6007,"mutability":"mutable","name":"_remoteExecution","nameLocation":"15538:16:31","nodeType":"VariableDeclaration","scope":6149,"src":"15533:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6006,"name":"bool","nodeType":"ElementaryTypeName","src":"15533:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15333:227:31"},"returnParameters":{"id":6009,"nodeType":"ParameterList","parameters":[],"src":"15568:0:31"},"scope":8014,"src":"15317:1880:31","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6217,"nodeType":"Block","src":"17812:795:31","statements":[{"assignments":[6168],"declarations":[{"constant":false,"id":6168,"mutability":"mutable","name":"initialGasLeft","nameLocation":"17830:14:31","nodeType":"VariableDeclaration","scope":6217,"src":"17822:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6167,"name":"uint256","nodeType":"ElementaryTypeName","src":"17822:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6171,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6169,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"17847:7:31","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17847:9:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17822:34:31"},{"expression":{"arguments":[{"id":6173,"name":"_actionRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17888:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6174,"name":"_targetRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"17913:11:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6175,"name":"_numActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17938:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6176,"name":"_numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"17963:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6177,"name":"_numImmutableContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"17988:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6178,"name":"_configUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6162,"src":"18024:10:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6179,"name":"_remoteExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6164,"src":"18048:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6172,"name":"propose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"17867:7:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (bytes32,bytes32,uint256,uint256,uint256,string memory,bool)"}},"id":6180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17867:207:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6181,"nodeType":"ExpressionStatement","src":"17867:207:31"},{"assignments":[6183],"declarations":[{"constant":false,"id":6183,"mutability":"mutable","name":"gasPrice","nameLocation":"18122:8:31","nodeType":"VariableDeclaration","scope":6217,"src":"18114:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6182,"name":"uint256","nodeType":"ElementaryTypeName","src":"18114:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6187,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6184,"name":"gasPriceCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5693,"src":"18133:18:31","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"}},"id":6185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getGasPrice","nodeType":"MemberAccess","referencedDeclaration":9832,"src":"18133:30:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18133:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18114:51:31"},{"assignments":[6189],"declarations":[{"constant":false,"id":6189,"mutability":"mutable","name":"calldataGasUsed","nameLocation":"18229:15:31","nodeType":"VariableDeclaration","scope":6217,"src":"18221:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6188,"name":"uint256","nodeType":"ElementaryTypeName","src":"18221:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6195,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6190,"name":"_msgData","nodeType":"Identifier","overloadedDeclarations":[8013],"referencedDeclaration":8013,"src":"18247:8:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_calldata_ptr_$","typeString":"function () view returns (bytes calldata)"}},"id":6191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18247:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":6192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"18247:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":6193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18267:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18247:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18221:48:31"},{"assignments":[6197],"declarations":[{"constant":false,"id":6197,"mutability":"mutable","name":"estGasUsed","nameLocation":"18374:10:31","nodeType":"VariableDeclaration","scope":6217,"src":"18366:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6196,"name":"uint256","nodeType":"ElementaryTypeName","src":"18366:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6206,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130305f303030","id":6198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18387:7:31","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6199,"name":"calldataGasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6189,"src":"18397:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18387:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6201,"name":"initialGasLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6168,"src":"18415:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18387:42:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6203,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"18432:7:31","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18432:9:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18387:54:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18366:75:31"},{"assignments":[6208],"declarations":[{"constant":false,"id":6208,"mutability":"mutable","name":"proposalCost","nameLocation":"18459:12:31","nodeType":"VariableDeclaration","scope":6217,"src":"18451:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6207,"name":"uint256","nodeType":"ElementaryTypeName","src":"18451:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6212,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6209,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"18474:8:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6210,"name":"estGasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"18485:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18474:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18451:44:31"},{"expression":{"id":6215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6213,"name":"totalProtocolDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"18567:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6214,"name":"proposalCost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"18588:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18567:33:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6216,"nodeType":"ExpressionStatement","src":"18567:33:31"}]},"documentation":{"id":6150,"nodeType":"StructuredDocumentation","src":"17203:342:31","text":" @notice Wrapper on the propose function which allows for a gasless proposal where the cost of\n         the using proposal is added to the protocol debt. This allows us to provide gasless\n         proposals using meta transactions while collecting the cost from the user after\n         execution completes."},"functionSelector":"fd95a3be","id":6218,"implemented":true,"kind":"function","modifiers":[],"name":"gaslesslyPropose","nameLocation":"17559:16:31","nodeType":"FunctionDefinition","parameters":{"id":6165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6152,"mutability":"mutable","name":"_actionRoot","nameLocation":"17593:11:31","nodeType":"VariableDeclaration","scope":6218,"src":"17585:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17585:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6154,"mutability":"mutable","name":"_targetRoot","nameLocation":"17622:11:31","nodeType":"VariableDeclaration","scope":6218,"src":"17614:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17614:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6156,"mutability":"mutable","name":"_numActions","nameLocation":"17651:11:31","nodeType":"VariableDeclaration","scope":6218,"src":"17643:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6155,"name":"uint256","nodeType":"ElementaryTypeName","src":"17643:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6158,"mutability":"mutable","name":"_numTargets","nameLocation":"17680:11:31","nodeType":"VariableDeclaration","scope":6218,"src":"17672:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6157,"name":"uint256","nodeType":"ElementaryTypeName","src":"17672:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6160,"mutability":"mutable","name":"_numImmutableContracts","nameLocation":"17709:22:31","nodeType":"VariableDeclaration","scope":6218,"src":"17701:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6159,"name":"uint256","nodeType":"ElementaryTypeName","src":"17701:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6162,"mutability":"mutable","name":"_configUri","nameLocation":"17755:10:31","nodeType":"VariableDeclaration","scope":6218,"src":"17741:24:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6161,"name":"string","nodeType":"ElementaryTypeName","src":"17741:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6164,"mutability":"mutable","name":"_remoteExecution","nameLocation":"17780:16:31","nodeType":"VariableDeclaration","scope":6218,"src":"17775:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6163,"name":"bool","nodeType":"ElementaryTypeName","src":"17775:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17575:227:31"},"returnParameters":{"id":6166,"nodeType":"ParameterList","parameters":[],"src":"17812:0:31"},"scope":8014,"src":"17550:1057:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9661],"body":{"id":6302,"nodeType":"Block","src":"19039:766:31","statements":[{"assignments":[6228],"declarations":[{"constant":false,"id":6228,"mutability":"mutable","name":"deployment","nameLocation":"19073:10:31","nodeType":"VariableDeclaration","scope":6302,"src":"19049:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":6227,"nodeType":"UserDefinedTypeName","pathNode":{"id":6226,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"19049:15:31"},"referencedDeclaration":5519,"src":"19049:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":6232,"initialValue":{"baseExpression":{"id":6229,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"19086:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":6231,"indexExpression":{"id":6230,"name":"_deploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"19099:13:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19086:27:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19049:64:31"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6233,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"19141:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"19141:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6237,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19191:4:31","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}],"id":6236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19183:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6235,"name":"address","nodeType":"ElementaryTypeName","src":"19183:7:31","typeDescriptions":{}}},"id":6238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19183:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"19183:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6240,"name":"totalDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"19207:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19207:11:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19183:35:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19141:77:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6246,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19242:4:31","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}],"id":6245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19234:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6244,"name":"address","nodeType":"ElementaryTypeName","src":"19234:7:31","typeDescriptions":{}}},"id":6247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19234:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"19234:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6249,"name":"totalDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"19258:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19258:11:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19234:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6252,"name":"ownerBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"19272:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19234:53:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19141:146:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6259,"nodeType":"IfStatement","src":"19124:229:31","trueBody":{"id":6258,"nodeType":"Block","src":"19298:55:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6255,"name":"InsufficientOwnerBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5752,"src":"19319:21:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19319:23:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6257,"nodeType":"RevertStatement","src":"19312:30:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":6264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6260,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"19367:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"19367:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6262,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"19388:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PROPOSED","nodeType":"MemberAccess","referencedDeclaration":5547,"src":"19388:25:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"19367:46:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6269,"nodeType":"IfStatement","src":"19363:109:31","trueBody":{"id":6268,"nodeType":"Block","src":"19415:57:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6265,"name":"DeploymentIsNotProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"19436:23:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19436:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6267,"nodeType":"RevertStatement","src":"19429:32:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6270,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"19486:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19516:1:31","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":6272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19508:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19508:7:31","typeDescriptions":{}}},"id":6274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19508:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"19486:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6280,"nodeType":"IfStatement","src":"19482:99:31","trueBody":{"id":6279,"nodeType":"Block","src":"19520:61:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6276,"name":"AnotherDeploymentInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5758,"src":"19541:27:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19541:29:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6278,"nodeType":"RevertStatement","src":"19534:36:31"}]}},{"expression":{"id":6283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6281,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"19591:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6282,"name":"_deploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"19612:13:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"19591:34:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6284,"nodeType":"ExpressionStatement","src":"19591:34:31"},{"expression":{"id":6290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6285,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"19635:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"19635:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":6288,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"19655:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"APPROVED","nodeType":"MemberAccess","referencedDeclaration":5548,"src":"19655:25:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"19635:45:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"id":6291,"nodeType":"ExpressionStatement","src":"19635:45:31"},{"eventCall":{"arguments":[{"id":6293,"name":"_deploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"19725:13:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6292,"name":"ChugSplashDeploymentApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8042,"src":"19696:28:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":6294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19696:43:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6295,"nodeType":"EmitStatement","src":"19691:48:31"},{"expression":{"arguments":[{"hexValue":"4368756753706c6173684465706c6f796d656e74417070726f766564","id":6299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19767:30:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac4d5f84147b3f629727dc611f06d39474d907909e757f1237017693d0020490","typeString":"literal_string \"ChugSplashDeploymentApproved\""},"value":"ChugSplashDeploymentApproved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ac4d5f84147b3f629727dc611f06d39474d907909e757f1237017693d0020490","typeString":"literal_string \"ChugSplashDeploymentApproved\""}],"expression":{"id":6296,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"19749:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"19749:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":6300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19749:49:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6301,"nodeType":"ExpressionStatement","src":"19749:49:31"}]},"documentation":{"id":6219,"nodeType":"StructuredDocumentation","src":"18613:362:31","text":" @notice Allows the owner to approve a deployment to be executed. If remote execution is\nenabled, there must be at least `ownerBondAmount` deposited in this contract before the\ndeployment can be approved. The deployment must be proposed before it can be approved.\n @param _deploymentId ID of the deployment to approve"},"functionSelector":"a53a1adf","id":6303,"implemented":true,"kind":"function","modifiers":[{"id":6224,"kind":"modifierInvocation","modifierName":{"id":6223,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"19029:9:31"},"nodeType":"ModifierInvocation","src":"19029:9:31"}],"name":"approve","nameLocation":"18989:7:31","nodeType":"FunctionDefinition","parameters":{"id":6222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6221,"mutability":"mutable","name":"_deploymentId","nameLocation":"19005:13:31","nodeType":"VariableDeclaration","scope":6303,"src":"18997:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18997:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18996:23:31"},"returnParameters":{"id":6225,"nodeType":"ParameterList","parameters":[],"src":"19039:0:31"},"scope":8014,"src":"18980:825:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6348,"nodeType":"Block","src":"20785:286:31","statements":[{"expression":{"arguments":[{"id":6327,"name":"_targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6308,"src":"20811:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"}},{"id":6328,"name":"_targetProofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6312,"src":"20821:13:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"},{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}],"id":6326,"name":"initiateUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"20795:15:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr_$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct ChugSplashTarget memory[] memory,bytes32[] memory[] memory)"}},"id":6329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20795:40:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6330,"nodeType":"ExpressionStatement","src":"20795:40:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6331,"name":"_actions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"20913:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction memory[] memory"}},"id":6332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20913:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20931:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20913:19:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6342,"nodeType":"IfStatement","src":"20909:105:31","trueBody":{"id":6341,"nodeType":"Block","src":"20934:80:31","statements":[{"expression":{"arguments":[{"id":6336,"name":"_actions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"20963:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction memory[] memory"}},{"id":6337,"name":"_actionIndexes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6319,"src":"20973:14:31","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6338,"name":"_actionProofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6323,"src":"20989:13:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction memory[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}],"id":6335,"name":"executeActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7059,"src":"20948:14:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct RawChugSplashAction memory[] memory,uint256[] memory,bytes32[] memory[] memory)"}},"id":6339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20948:55:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6340,"nodeType":"ExpressionStatement","src":"20948:55:31"}]}},{"expression":{"arguments":[{"id":6344,"name":"_targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6308,"src":"21040:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"}},{"id":6345,"name":"_targetProofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6312,"src":"21050:13:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"},{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}],"id":6343,"name":"finalizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7477,"src":"21024:15:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr_$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct ChugSplashTarget memory[] memory,bytes32[] memory[] memory)"}},"id":6346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21024:40:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6347,"nodeType":"ExpressionStatement","src":"21024:40:31"}]},"documentation":{"id":6304,"nodeType":"StructuredDocumentation","src":"19811:708:31","text":" @notice Helper function that executes an entire upgrade in a single transaction. This allows\nthe proxies in smaller upgrades to have zero downtime. This must occur after all of the\n`DEPLOY_CONTRACT` actions have been executed.\n @param _targets Array of ChugSplashTarget structs containing the targets for the deployment.\n @param _targetProofs Array of Merkle proofs for the targets.\n @param _actions Array of RawChugSplashAction structs containing the actions for the\n                 deployment.\n @param _actionIndexes Array of indexes into the actions array for each target.\n @param _actionProofs Array of Merkle proofs for the actions."},"functionSelector":"91e219ae","id":6349,"implemented":true,"kind":"function","modifiers":[],"name":"executeEntireUpgrade","nameLocation":"20533:20:31","nodeType":"FunctionDefinition","parameters":{"id":6324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6308,"mutability":"mutable","name":"_targets","nameLocation":"20589:8:31","nodeType":"VariableDeclaration","scope":6349,"src":"20563:34:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget[]"},"typeName":{"baseType":{"id":6306,"nodeType":"UserDefinedTypeName","pathNode":{"id":6305,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"20563:16:31"},"referencedDeclaration":5542,"src":"20563:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"id":6307,"nodeType":"ArrayTypeName","src":"20563:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_storage_$dyn_storage_ptr","typeString":"struct ChugSplashTarget[]"}},"visibility":"internal"},{"constant":false,"id":6312,"mutability":"mutable","name":"_targetProofs","nameLocation":"20626:13:31","nodeType":"VariableDeclaration","scope":6349,"src":"20607:32:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":6309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20607:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6310,"nodeType":"ArrayTypeName","src":"20607:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":6311,"nodeType":"ArrayTypeName","src":"20607:11:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"},{"constant":false,"id":6316,"mutability":"mutable","name":"_actions","nameLocation":"20678:8:31","nodeType":"VariableDeclaration","scope":6349,"src":"20649:37:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction[]"},"typeName":{"baseType":{"id":6314,"nodeType":"UserDefinedTypeName","pathNode":{"id":6313,"name":"RawChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"20649:19:31"},"referencedDeclaration":5531,"src":"20649:19:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"}},"id":6315,"nodeType":"ArrayTypeName","src":"20649:21:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_storage_$dyn_storage_ptr","typeString":"struct RawChugSplashAction[]"}},"visibility":"internal"},{"constant":false,"id":6319,"mutability":"mutable","name":"_actionIndexes","nameLocation":"20713:14:31","nodeType":"VariableDeclaration","scope":6349,"src":"20696:31:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6317,"name":"uint256","nodeType":"ElementaryTypeName","src":"20696:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6318,"nodeType":"ArrayTypeName","src":"20696:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6323,"mutability":"mutable","name":"_actionProofs","nameLocation":"20756:13:31","nodeType":"VariableDeclaration","scope":6349,"src":"20737:32:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":6320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20737:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6321,"nodeType":"ArrayTypeName","src":"20737:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":6322,"nodeType":"ArrayTypeName","src":"20737:11:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"20553:222:31"},"returnParameters":{"id":6325,"nodeType":"ParameterList","parameters":[],"src":"20785:0:31"},"scope":8014,"src":"20524:547:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9623],"body":{"id":6428,"nodeType":"Block","src":"21803:959:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6355,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"21817:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21847:1:31","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":6357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21839:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21839:7:31","typeDescriptions":{}}},"id":6359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21839:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21817:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6365,"nodeType":"IfStatement","src":"21813:90:31","trueBody":{"id":6364,"nodeType":"Block","src":"21851:52:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6361,"name":"NoActiveDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5761,"src":"21872:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21872:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6363,"nodeType":"RevertStatement","src":"21865:27:31"}]}},{"assignments":[6368],"declarations":[{"constant":false,"id":6368,"mutability":"mutable","name":"deployment","nameLocation":"21937:10:31","nodeType":"VariableDeclaration","scope":6428,"src":"21913:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":6367,"nodeType":"UserDefinedTypeName","pathNode":{"id":6366,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"21913:15:31"},"referencedDeclaration":5519,"src":"21913:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":6372,"initialValue":{"baseExpression":{"id":6369,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"21950:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":6371,"indexExpression":{"id":6370,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"21963:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21950:32:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21913:69:31"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6373,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"22010:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"22010:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6375,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"22052:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timeClaimed","nodeType":"MemberAccess","referencedDeclaration":5512,"src":"22052:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6377,"name":"executionLockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5703,"src":"22077:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22052:42:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":6379,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22098:5:31","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22098:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22052:61:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22010:103:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6395,"nodeType":"IfStatement","src":"21993:389:31","trueBody":{"id":6394,"nodeType":"Block","src":"22124:258:31","statements":[{"expression":{"id":6388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6383,"name":"executorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"22276:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6386,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6384,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"22289:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22289:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22276:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6387,"name":"ownerBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"22306:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22276:45:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6389,"nodeType":"ExpressionStatement","src":"22276:45:31"},{"expression":{"id":6392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6390,"name":"totalExecutorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"22335:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6391,"name":"ownerBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"22356:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22335:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6393,"nodeType":"ExpressionStatement","src":"22335:36:31"}]}},{"assignments":[6397],"declarations":[{"constant":false,"id":6397,"mutability":"mutable","name":"cancelledDeploymentId","nameLocation":"22400:21:31","nodeType":"VariableDeclaration","scope":6428,"src":"22392:29:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22392:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6399,"initialValue":{"id":6398,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"22424:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22392:50:31"},{"expression":{"id":6405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6400,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"22452:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":6403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22481:1:31","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":6402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22473:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22473:7:31","typeDescriptions":{}}},"id":6404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22473:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22452:31:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6406,"nodeType":"ExpressionStatement","src":"22452:31:31"},{"expression":{"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6407,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"22493:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"22493:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":6410,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"22513:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":6411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CANCELLED","nodeType":"MemberAccess","referencedDeclaration":5551,"src":"22513:26:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"22493:46:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"id":6413,"nodeType":"ExpressionStatement","src":"22493:46:31"},{"eventCall":{"arguments":[{"id":6415,"name":"cancelledDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6397,"src":"22598:21:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6416,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"22633:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22633:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6418,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"22659:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionsExecuted","nodeType":"MemberAccess","referencedDeclaration":5510,"src":"22659:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6414,"name":"ChugSplashDeploymentCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"22555:29:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22555:140:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6421,"nodeType":"EmitStatement","src":"22550:145:31"},{"expression":{"arguments":[{"hexValue":"4368756753706c6173684465706c6f796d656e7443616e63656c6c6564","id":6425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22723:31:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4b98612bedea35f7ef2cfe8183cc6b7180cbf10fd45b4a40f65020ea3ec0f85","typeString":"literal_string \"ChugSplashDeploymentCancelled\""},"value":"ChugSplashDeploymentCancelled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4b98612bedea35f7ef2cfe8183cc6b7180cbf10fd45b4a40f65020ea3ec0f85","typeString":"literal_string \"ChugSplashDeploymentCancelled\""}],"expression":{"id":6422,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"22705:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"22705:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":6426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22705:50:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6427,"nodeType":"ExpressionStatement","src":"22705:50:31"}]},"documentation":{"id":6350,"nodeType":"StructuredDocumentation","src":"21077:658:31","text":" @notice **WARNING**: Cancellation is a potentially dangerous action and should not be\n         executed unless in an emergency.\n         Allows the owner to cancel an active deployment that was approved. If an executor has\nnot claimed the deployment, the owner is simply allowed to withdraw their bond via a\nsubsequent call to `withdrawOwnerETH`. Otherwise, cancelling a deployment will cause\nthe owner to forfeit their bond to the executor. This is necessary to prevent owners\nfrom trolling the remote executor by immediately cancelling and withdrawing funds."},"functionSelector":"5229c975","id":6429,"implemented":true,"kind":"function","modifiers":[{"id":6353,"kind":"modifierInvocation","modifierName":{"id":6352,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"21793:9:31"},"nodeType":"ModifierInvocation","src":"21793:9:31"}],"name":"cancelActiveChugSplashDeployment","nameLocation":"21749:32:31","nodeType":"FunctionDefinition","parameters":{"id":6351,"nodeType":"ParameterList","parameters":[],"src":"21781:2:31"},"returnParameters":{"id":6354,"nodeType":"ParameterList","parameters":[],"src":"21803:0:31"},"scope":8014,"src":"21740:1022:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6499,"nodeType":"Block","src":"23186:659:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6435,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"23200:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23230:1:31","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":6437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23222:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23222:7:31","typeDescriptions":{}}},"id":6439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23222:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23200:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6445,"nodeType":"IfStatement","src":"23196:90:31","trueBody":{"id":6444,"nodeType":"Block","src":"23234:52:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6441,"name":"NoActiveDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5761,"src":"23255:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23255:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6443,"nodeType":"RevertStatement","src":"23248:27:31"}]}},{"assignments":[6448],"declarations":[{"constant":false,"id":6448,"mutability":"mutable","name":"deployment","nameLocation":"23320:10:31","nodeType":"VariableDeclaration","scope":6499,"src":"23296:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":6447,"nodeType":"UserDefinedTypeName","pathNode":{"id":6446,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"23296:15:31"},"referencedDeclaration":5519,"src":"23296:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":6452,"initialValue":{"baseExpression":{"id":6449,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"23333:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":6451,"indexExpression":{"id":6450,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"23346:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23333:32:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23296:69:31"},{"condition":{"id":6455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23380:27:31","subExpression":{"expression":{"id":6453,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6448,"src":"23381:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"23381:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6460,"nodeType":"IfStatement","src":"23376:90:31","trueBody":{"id":6459,"nodeType":"Block","src":"23409:57:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6456,"name":"RemoteExecutionDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"23430:23:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23430:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6458,"nodeType":"RevertStatement","src":"23423:32:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6461,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23480:5:31","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"23480:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6463,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6448,"src":"23499:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"timeClaimed","nodeType":"MemberAccess","referencedDeclaration":5512,"src":"23499:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6465,"name":"executionLockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5703,"src":"23524:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23499:42:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23480:61:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6472,"nodeType":"IfStatement","src":"23476:125:31","trueBody":{"id":6471,"nodeType":"Block","src":"23543:58:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6468,"name":"DeploymentAlreadyClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"23564:24:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23564:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6470,"nodeType":"RevertStatement","src":"23557:33:31"}]}},{"expression":{"id":6478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6473,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6448,"src":"23611:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"timeClaimed","nodeType":"MemberAccess","referencedDeclaration":5512,"src":"23611:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":6476,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23636:5:31","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"23636:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23611:40:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6479,"nodeType":"ExpressionStatement","src":"23611:40:31"},{"expression":{"id":6485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6480,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6448,"src":"23661:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"selectedExecutor","nodeType":"MemberAccess","referencedDeclaration":5514,"src":"23661:27:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":6483,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"23691:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23691:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23661:42:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6486,"nodeType":"ExpressionStatement","src":"23661:42:31"},{"eventCall":{"arguments":[{"id":6488,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"23747:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6489,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"23767:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23767:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6487,"name":"ChugSplashDeploymentClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"23719:27:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":6491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23719:61:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6492,"nodeType":"EmitStatement","src":"23714:66:31"},{"expression":{"arguments":[{"hexValue":"4368756753706c6173684465706c6f796d656e74436c61696d6564","id":6496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23808:29:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_9299e799f5bd86a57c95da8888edb7cf8f9f8a911599ee655149753055d95bb1","typeString":"literal_string \"ChugSplashDeploymentClaimed\""},"value":"ChugSplashDeploymentClaimed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9299e799f5bd86a57c95da8888edb7cf8f9f8a911599ee655149753055d95bb1","typeString":"literal_string \"ChugSplashDeploymentClaimed\""}],"expression":{"id":6493,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"23790:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"23790:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":6497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23790:48:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6498,"nodeType":"ExpressionStatement","src":"23790:48:31"}]},"documentation":{"id":6430,"nodeType":"StructuredDocumentation","src":"22768:364:31","text":" @notice Allows a remote executor to claim the sole right to execute a deployment over a\nperiod of `executionLockTime`. Only the first executor to post a bond gains this\nright. Executors must finish executing the deployment within `executionLockTime` or\nelse another executor may claim the deployment."},"functionSelector":"4731d48c","id":6500,"implemented":true,"kind":"function","modifiers":[{"id":6433,"kind":"modifierInvocation","modifierName":{"id":6432,"name":"onlyExecutor","nodeType":"IdentifierPath","referencedDeclaration":5853,"src":"23173:12:31"},"nodeType":"ModifierInvocation","src":"23173:12:31"}],"name":"claimDeployment","nameLocation":"23146:15:31","nodeType":"FunctionDefinition","parameters":{"id":6431,"nodeType":"ParameterList","parameters":[],"src":"23161:2:31"},"returnParameters":{"id":6434,"nodeType":"ParameterList","parameters":[],"src":"23186:0:31"},"scope":8014,"src":"23137:708:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6616,"nodeType":"Block","src":"24472:935:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6508,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"24486:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24497:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24486:12:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6515,"nodeType":"IfStatement","src":"24482:79:31","trueBody":{"id":6514,"nodeType":"Block","src":"24500:61:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6511,"name":"AmountMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5770,"src":"24521:27:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24521:29:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6513,"nodeType":"RevertStatement","src":"24514:36:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6516,"name":"executorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"24574:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6519,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6517,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"24587:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24587:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24574:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6520,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"24603:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24574:36:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6526,"nodeType":"IfStatement","src":"24570:100:31","trueBody":{"id":6525,"nodeType":"Block","src":"24612:58:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6522,"name":"InsufficientExecutorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5773,"src":"24633:24:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24633:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6524,"nodeType":"RevertStatement","src":"24626:33:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6527,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"24683:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6528,"name":"totalProtocolDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"24693:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24683:27:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6532,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24721:4:31","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}],"id":6531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24713:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6530,"name":"address","nodeType":"ElementaryTypeName","src":"24713:7:31","typeDescriptions":{}}},"id":6533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24713:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"24713:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24683:51:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6540,"nodeType":"IfStatement","src":"24679:108:31","trueBody":{"id":6539,"nodeType":"Block","src":"24736:51:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6536,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"24757:17:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24757:19:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6538,"nodeType":"RevertStatement","src":"24750:26:31"}]}},{"expression":{"id":6546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6541,"name":"executorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"24797:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6544,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6542,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"24810:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24810:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24797:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":6545,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"24827:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24797:37:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6547,"nodeType":"ExpressionStatement","src":"24797:37:31"},{"expression":{"id":6550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6548,"name":"totalExecutorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"24844:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":6549,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"24865:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24844:28:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6551,"nodeType":"ExpressionStatement","src":"24844:28:31"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6553,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"24911:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24911:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6555,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"24925:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":6556,"name":"executorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"24934:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6559,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6557,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"24947:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24947:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24934:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6552,"name":"ExecutorPaymentClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"24888:22:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":6560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24888:73:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6561,"nodeType":"EmitStatement","src":"24883:78:31"},{"assignments":[6563,null],"declarations":[{"constant":false,"id":6563,"mutability":"mutable","name":"paidExecutor","nameLocation":"24978:12:31","nodeType":"VariableDeclaration","scope":6616,"src":"24973:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6562,"name":"bool","nodeType":"ElementaryTypeName","src":"24973:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6577,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":6574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25051:1:31","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":6573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25041:9:31","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":6572,"name":"bytes","nodeType":"ElementaryTypeName","src":"25045:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":6575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25041:12:31","tryCall":false,"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":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6566,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"25004:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25004:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24996:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":6564,"name":"address","nodeType":"ElementaryTypeName","src":"24996:8:31","stateMutability":"payable","typeDescriptions":{}}},"id":6568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24996:21:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"24996:26:31","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":6571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6570,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"25031:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"24996:44:31","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":6576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24996:58:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"24972:82:31"},{"condition":{"id":6579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"25068:13:31","subExpression":{"id":6578,"name":"paidExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6563,"src":"25069:12:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6584,"nodeType":"IfStatement","src":"25064:69:31","trueBody":{"id":6583,"nodeType":"Block","src":"25083:50:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6580,"name":"WithdrawalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"25104:16:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25104:18:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6582,"nodeType":"RevertStatement","src":"25097:25:31"}]}},{"assignments":[6586,null],"declarations":[{"constant":false,"id":6586,"mutability":"mutable","name":"paidProtocol","nameLocation":"25149:12:31","nodeType":"VariableDeclaration","scope":6616,"src":"25144:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6585,"name":"bool","nodeType":"ElementaryTypeName","src":"25144:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6602,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":6599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25256:1:31","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":6598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25246:9:31","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":6597,"name":"bytes","nodeType":"ElementaryTypeName","src":"25250:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":6600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25246:12:31","tryCall":false,"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":{"arguments":[{"arguments":[{"id":6591,"name":"managedService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"25183:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}],"id":6590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25175:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6589,"name":"address","nodeType":"ElementaryTypeName","src":"25175:7:31","typeDescriptions":{}}},"id":6592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25175:23:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25167:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":6587,"name":"address","nodeType":"ElementaryTypeName","src":"25167:8:31","stateMutability":"payable","typeDescriptions":{}}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25167:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"25167:37:31","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":6596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6595,"name":"totalProtocolDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"25213:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25167:65:31","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":6601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25167:101:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"25143:125:31"},{"condition":{"id":6604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"25282:13:31","subExpression":{"id":6603,"name":"paidProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6586,"src":"25283:12:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6609,"nodeType":"IfStatement","src":"25278:69:31","trueBody":{"id":6608,"nodeType":"Block","src":"25297:50:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6605,"name":"WithdrawalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"25318:16:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25318:18:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6607,"nodeType":"RevertStatement","src":"25311:25:31"}]}},{"expression":{"arguments":[{"hexValue":"4578656375746f725061796d656e74436c61696d6564","id":6613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25375:24:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ccd5c9189f012814a6c30a1907ed2c4bdaf8bbbe09fb39de37dd5c076f3c93","typeString":"literal_string \"ExecutorPaymentClaimed\""},"value":"ExecutorPaymentClaimed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ccd5c9189f012814a6c30a1907ed2c4bdaf8bbbe09fb39de37dd5c076f3c93","typeString":"literal_string \"ExecutorPaymentClaimed\""}],"expression":{"id":6610,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"25357:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"25357:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":6614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25357:43:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6615,"nodeType":"ExpressionStatement","src":"25357:43:31"}]},"documentation":{"id":6501,"nodeType":"StructuredDocumentation","src":"23851:547:31","text":" @notice Allows an executor to claim its ETH payment that was earned by completing a\ndeployment. Executors may only withdraw an amount less than or equal to the amount of ETH\nowed to them by this contract. We allow the executor to withdraw less than the amount owed to\nthem because it's possible that the executor's debt exceeds the amount of ETH stored in this\ncontract. This situation can occur when the executor completes an underfunded deployment.\n @param _amount Amount of ETH to withdraw."},"functionSelector":"79e6f49a","id":6617,"implemented":true,"kind":"function","modifiers":[{"id":6506,"kind":"modifierInvocation","modifierName":{"id":6505,"name":"onlyExecutor","nodeType":"IdentifierPath","referencedDeclaration":5853,"src":"24459:12:31"},"nodeType":"ModifierInvocation","src":"24459:12:31"}],"name":"claimExecutorPayment","nameLocation":"24412:20:31","nodeType":"FunctionDefinition","parameters":{"id":6504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6503,"mutability":"mutable","name":"_amount","nameLocation":"24441:7:31","nodeType":"VariableDeclaration","scope":6617,"src":"24433:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6502,"name":"uint256","nodeType":"ElementaryTypeName","src":"24433:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24432:17:31"},"returnParameters":{"id":6507,"nodeType":"ParameterList","parameters":[],"src":"24472:0:31"},"scope":8014,"src":"24403:1004:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9632],"body":{"id":6701,"nodeType":"Block","src":"26090:887:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":6629,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6620,"src":"26104:6:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"26104:11:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"26104:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26126:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26104:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6638,"nodeType":"IfStatement","src":"26100:83:31","trueBody":{"id":6637,"nodeType":"Block","src":"26129:54:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6634,"name":"ContractDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"26150:20:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26150:22:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6636,"nodeType":"RevertStatement","src":"26143:29:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6639,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"26197:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26227:1:31","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":6641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26219:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26219:7:31","typeDescriptions":{}}},"id":6643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26219:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26197:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6649,"nodeType":"IfStatement","src":"26193:99:31","trueBody":{"id":6648,"nodeType":"Block","src":"26231:61:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6645,"name":"AnotherDeploymentInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5758,"src":"26252:27:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26252:29:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6647,"nodeType":"RevertStatement","src":"26245:36:31"}]}},{"assignments":[6651],"declarations":[{"constant":false,"id":6651,"mutability":"mutable","name":"adapter","nameLocation":"26377:7:31","nodeType":"VariableDeclaration","scope":6701,"src":"26369:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6650,"name":"address","nodeType":"ElementaryTypeName","src":"26369:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6656,"initialValue":{"arguments":[{"id":6654,"name":"_contractKindHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"26405:17:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6652,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"26387:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adapters","nodeType":"MemberAccess","referencedDeclaration":9773,"src":"26387:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":6655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26387:36:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26369:54:31"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6657,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"26437:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26456:1:31","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":6659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26448:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6658,"name":"address","nodeType":"ElementaryTypeName","src":"26448:7:31","typeDescriptions":{}}},"id":6661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26448:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26437:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6667,"nodeType":"IfStatement","src":"26433:80:31","trueBody":{"id":6666,"nodeType":"Block","src":"26460:53:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6663,"name":"InvalidContractKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5785,"src":"26481:19:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26481:21:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6665,"nodeType":"RevertStatement","src":"26474:28:31"}]}},{"eventCall":{"arguments":[{"id":6669,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6620,"src":"26542:6:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":6670,"name":"_contractKindHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"26550:17:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6671,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6624,"src":"26569:9:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6668,"name":"ProxyExported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"26528:13:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (address,bytes32,address)"}},"id":6672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26528:51:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6673,"nodeType":"EmitStatement","src":"26523:56:31"},{"assignments":[6675,null],"declarations":[{"constant":false,"id":6675,"mutability":"mutable","name":"success","nameLocation":"26727:7:31","nodeType":"VariableDeclaration","scope":6701,"src":"26722:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6674,"name":"bool","nodeType":"ElementaryTypeName","src":"26722:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6687,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6680,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"26789:13:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyAdapter_$9887_$","typeString":"type(contract IProxyAdapter)"}},"id":6681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"changeProxyAdmin","nodeType":"MemberAccess","referencedDeclaration":9886,"src":"26789:30:31","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$_t_address_$returns$__$","typeString":"function IProxyAdapter.changeProxyAdmin(address payable,address)"}},{"components":[{"id":6682,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6620,"src":"26822:6:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":6683,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6624,"src":"26830:9:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":6684,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26821:19:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_address_$","typeString":"tuple(address payable,address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$_t_address_$returns$__$","typeString":"function IProxyAdapter.changeProxyAdmin(address payable,address)"},{"typeIdentifier":"t_tuple$_t_address_payable_$_t_address_$","typeString":"tuple(address payable,address)"}],"expression":{"id":6678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26774:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"26774:14:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26774:67:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6676,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"26740:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"26740:20:31","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":6686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26740:111:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"26721:130:31"},{"condition":{"id":6689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"26865:8:31","subExpression":{"id":6688,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6675,"src":"26866:7:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6694,"nodeType":"IfStatement","src":"26861:65:31","trueBody":{"id":6693,"nodeType":"Block","src":"26875:51:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6690,"name":"ProxyExportFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5788,"src":"26896:17:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26896:19:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6692,"nodeType":"RevertStatement","src":"26889:26:31"}]}},{"expression":{"arguments":[{"hexValue":"50726f78794578706f72746564","id":6698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26954:15:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_ff4b76aa5cc79574b79360f66d4e31f7f076ae34764f584e1cf284635346f8d8","typeString":"literal_string \"ProxyExported\""},"value":"ProxyExported"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ff4b76aa5cc79574b79360f66d4e31f7f076ae34764f584e1cf284635346f8d8","typeString":"literal_string \"ProxyExported\""}],"expression":{"id":6695,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"26936:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"26936:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":6699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26936:34:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6700,"nodeType":"ExpressionStatement","src":"26936:34:31"}]},"documentation":{"id":6618,"nodeType":"StructuredDocumentation","src":"25413:532:31","text":" @notice Transfers ownership of a proxy away from this contract to a specified address. Only\ncallable by the owner. Note that this function allows the owner to send ownership of their\nproxy to address(0), which would make their proxy non-upgradeable.\n @param _proxy  Address of the proxy to transfer ownership of.\n @param _contractKindHash  Hash of the contract kind, which represents the proxy type.\n @param _newOwner  Address of the owner to receive ownership of the proxy."},"functionSelector":"75cd65e1","id":6702,"implemented":true,"kind":"function","modifiers":[{"id":6627,"kind":"modifierInvocation","modifierName":{"id":6626,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"26080:9:31"},"nodeType":"ModifierInvocation","src":"26080:9:31"}],"name":"exportProxy","nameLocation":"25959:11:31","nodeType":"FunctionDefinition","parameters":{"id":6625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6620,"mutability":"mutable","name":"_proxy","nameLocation":"25996:6:31","nodeType":"VariableDeclaration","scope":6702,"src":"25980:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6619,"name":"address","nodeType":"ElementaryTypeName","src":"25980:15:31","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":6622,"mutability":"mutable","name":"_contractKindHash","nameLocation":"26020:17:31","nodeType":"VariableDeclaration","scope":6702,"src":"26012:25:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26012:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6624,"mutability":"mutable","name":"_newOwner","nameLocation":"26055:9:31","nodeType":"VariableDeclaration","scope":6702,"src":"26047:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6623,"name":"address","nodeType":"ElementaryTypeName","src":"26047:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25970:100:31"},"returnParameters":{"id":6628,"nodeType":"ParameterList","parameters":[],"src":"26090:0:31"},"scope":8014,"src":"25950:1027:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6765,"nodeType":"Block","src":"27289:440:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6708,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"27303:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27333:1:31","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":6710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27325:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27325:7:31","typeDescriptions":{}}},"id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27325:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27303:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6718,"nodeType":"IfStatement","src":"27299:99:31","trueBody":{"id":6717,"nodeType":"Block","src":"27337:61:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6714,"name":"AnotherDeploymentInProgress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5758,"src":"27358:27:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27358:29:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6716,"nodeType":"RevertStatement","src":"27351:36:31"}]}},{"assignments":[6720],"declarations":[{"constant":false,"id":6720,"mutability":"mutable","name":"amount","nameLocation":"27416:6:31","nodeType":"VariableDeclaration","scope":6765,"src":"27408:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6719,"name":"uint256","nodeType":"ElementaryTypeName","src":"27408:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6729,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6723,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27433:4:31","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashManager_$8014","typeString":"contract ChugSplashManager"}],"id":6722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27425:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6721,"name":"address","nodeType":"ElementaryTypeName","src":"27425:7:31","typeDescriptions":{}}},"id":6724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27425:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"27425:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6726,"name":"totalDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"27449:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27449:11:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27425:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27408:52:31"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6731,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"27493:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27493:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6733,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6720,"src":"27507:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6730,"name":"OwnerWithdrewETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8118,"src":"27476:16:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27476:38:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6735,"nodeType":"EmitStatement","src":"27471:43:31"},{"assignments":[6737,null],"declarations":[{"constant":false,"id":6737,"mutability":"mutable","name":"success","nameLocation":"27531:7:31","nodeType":"VariableDeclaration","scope":6765,"src":"27526:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6736,"name":"bool","nodeType":"ElementaryTypeName","src":"27526:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6751,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":6748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27598:1:31","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":6747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27588:9:31","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":6746,"name":"bytes","nodeType":"ElementaryTypeName","src":"27592:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":6749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27588:12:31","tryCall":false,"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":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6740,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"27552:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27552:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27544:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":6738,"name":"address","nodeType":"ElementaryTypeName","src":"27544:8:31","stateMutability":"payable","typeDescriptions":{}}},"id":6742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27544:21:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"27544:26:31","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":6745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6744,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6720,"src":"27579:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27544:43:31","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":6750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27544:57:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"27525:76:31"},{"condition":{"id":6753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27615:8:31","subExpression":{"id":6752,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"27616:7:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6758,"nodeType":"IfStatement","src":"27611:64:31","trueBody":{"id":6757,"nodeType":"Block","src":"27625:50:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6754,"name":"WithdrawalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"27646:16:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27646:18:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6756,"nodeType":"RevertStatement","src":"27639:25:31"}]}},{"expression":{"arguments":[{"hexValue":"4f776e65725769746864726577455448","id":6762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27703:18:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_73c3d4076184b9838feedbd8e5b052e7b81ce6eb33e5d660144042390badac81","typeString":"literal_string \"OwnerWithdrewETH\""},"value":"OwnerWithdrewETH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73c3d4076184b9838feedbd8e5b052e7b81ce6eb33e5d660144042390badac81","typeString":"literal_string \"OwnerWithdrewETH\""}],"expression":{"id":6759,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"27685:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"27685:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":6763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27685:37:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6764,"nodeType":"ExpressionStatement","src":"27685:37:31"}]},"documentation":{"id":6703,"nodeType":"StructuredDocumentation","src":"26983:254:31","text":" @notice Allows the owner to withdraw all funds in this contract minus the debt\n         owed to the executor and protocol. Cannot be called when there is an active\ndeployment, as this would rug the remote executor."},"functionSelector":"f40c7c4c","id":6766,"implemented":true,"kind":"function","modifiers":[{"id":6706,"kind":"modifierInvocation","modifierName":{"id":6705,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"27279:9:31"},"nodeType":"ModifierInvocation","src":"27279:9:31"}],"name":"withdrawOwnerETH","nameLocation":"27251:16:31","nodeType":"FunctionDefinition","parameters":{"id":6704,"nodeType":"ParameterList","parameters":[],"src":"27267:2:31"},"returnParameters":{"id":6707,"nodeType":"ParameterList","parameters":[],"src":"27289:0:31"},"scope":8014,"src":"27242:487:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6799,"nodeType":"Block","src":"28061:197:31","statements":[{"expression":{"id":6780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6776,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5719,"src":"28071:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6778,"indexExpression":{"id":6777,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"28081:9:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28071:20:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6779,"name":"_isProposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6771,"src":"28094:11:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28071:34:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6781,"nodeType":"ExpressionStatement","src":"28071:34:31"},{"eventCall":{"arguments":[{"id":6783,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"28133:9:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6784,"name":"_isProposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6771,"src":"28144:11:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6785,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"28157:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28157:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6782,"name":"ProposerSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8127,"src":"28121:11:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$_t_address_$returns$__$","typeString":"function (address,bool,address)"}},"id":6787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28121:49:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6788,"nodeType":"EmitStatement","src":"28116:54:31"},{"expression":{"arguments":[{"hexValue":"50726f706f736572536574","id":6792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28206:13:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_353d32ba4321887fff30f08be0ac2c95ae0eb97d5bb0557782a9c159993a40aa","typeString":"literal_string \"ProposerSet\""},"value":"ProposerSet"},{"arguments":[{"id":6795,"name":"_isProposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6771,"src":"28238:11:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6793,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28221:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"28221:16:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28221:29:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_353d32ba4321887fff30f08be0ac2c95ae0eb97d5bb0557782a9c159993a40aa","typeString":"literal_string \"ProposerSet\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6789,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"28180:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announceWithData","nodeType":"MemberAccess","referencedDeclaration":9766,"src":"28180:25:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) external"}},"id":6797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28180:71:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6798,"nodeType":"ExpressionStatement","src":"28180:71:31"}]},"documentation":{"id":6767,"nodeType":"StructuredDocumentation","src":"27735:244:31","text":" @notice Allows the owner of this contract to add or remove a proposer.\n @param _proposer Address of the proposer to add or remove.\n @param _isProposer Whether or not the proposer should be added or removed."},"functionSelector":"e9ed9b64","id":6800,"implemented":true,"kind":"function","modifiers":[{"id":6774,"kind":"modifierInvocation","modifierName":{"id":6773,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"28051:9:31"},"nodeType":"ModifierInvocation","src":"28051:9:31"}],"name":"setProposer","nameLocation":"27993:11:31","nodeType":"FunctionDefinition","parameters":{"id":6772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6769,"mutability":"mutable","name":"_proposer","nameLocation":"28013:9:31","nodeType":"VariableDeclaration","scope":6800,"src":"28005:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6768,"name":"address","nodeType":"ElementaryTypeName","src":"28005:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6771,"mutability":"mutable","name":"_isProposer","nameLocation":"28029:11:31","nodeType":"VariableDeclaration","scope":6800,"src":"28024:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6770,"name":"bool","nodeType":"ElementaryTypeName","src":"28024:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28004:37:31"},"returnParameters":{"id":6775,"nodeType":"ParameterList","parameters":[],"src":"28061:0:31"},"scope":8014,"src":"27984:274:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6827,"nodeType":"Block","src":"28456:276:31","statements":[{"expression":{"id":6809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6806,"name":"allowManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"28466:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28490:22:31","subExpression":{"id":6807,"name":"allowManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"28491:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28466:46:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6810,"nodeType":"ExpressionStatement","src":"28466:46:31"},{"eventCall":{"arguments":[{"id":6812,"name":"allowManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"28552:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6813,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"28575:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28575:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6811,"name":"ToggledManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8134,"src":"28528:23:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_address_$returns$__$","typeString":"function (bool,address)"}},"id":6815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28528:60:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6816,"nodeType":"EmitStatement","src":"28523:65:31"},{"expression":{"arguments":[{"hexValue":"546f67676c65644d616e6167656450726f706f73616c73","id":6820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28637:25:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_94fb0879ec971022842631c04539b6c897165004ebe353344a6e045c17defe29","typeString":"literal_string \"ToggledManagedProposals\""},"value":"ToggledManagedProposals"},{"arguments":[{"id":6823,"name":"allowManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"28693:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28676:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"28676:16:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28676:39:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94fb0879ec971022842631c04539b6c897165004ebe353344a6e045c17defe29","typeString":"literal_string \"ToggledManagedProposals\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6817,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"28598:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":6819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announceWithData","nodeType":"MemberAccess","referencedDeclaration":9766,"src":"28598:25:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) external"}},"id":6825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28598:127:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6826,"nodeType":"ExpressionStatement","src":"28598:127:31"}]},"documentation":{"id":6801,"nodeType":"StructuredDocumentation","src":"28264:129:31","text":" @notice Allows the owner to toggle whether or not proposals via the ManagedService contract\nis allowed."},"functionSelector":"9a20ba78","id":6828,"implemented":true,"kind":"function","modifiers":[{"id":6804,"kind":"modifierInvocation","modifierName":{"id":6803,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":997,"src":"28446:9:31"},"nodeType":"ModifierInvocation","src":"28446:9:31"}],"name":"toggleAllowManagedProposals","nameLocation":"28407:27:31","nodeType":"FunctionDefinition","parameters":{"id":6802,"nodeType":"ParameterList","parameters":[],"src":"28434:2:31"},"returnParameters":{"id":6805,"nodeType":"ParameterList","parameters":[],"src":"28456:0:31"},"scope":8014,"src":"28398:334:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9674],"body":{"id":6841,"nodeType":"Block","src":"29379:51:31","statements":[{"expression":{"baseExpression":{"id":6837,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"29396:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":6839,"indexExpression":{"id":6838,"name":"_deploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"29409:13:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29396:27:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"functionReturnParameters":6836,"id":6840,"nodeType":"Return","src":"29389:34:31"}]},"documentation":{"id":6829,"nodeType":"StructuredDocumentation","src":"28738:545:31","text":" @notice Gets the DeploymentState struct for a given deployment ID. Note that we explicitly\n         define this function because the getter function auto-generated by Solidity doesn't\nreturn\n         array members of structs: https://github.com/ethereum/solidity/issues/12792. Without\n         this function, we wouldn't be able to retrieve the full `DeploymentState.actions`\narray.\n @param _deploymentId Deployment ID.\n @return DeploymentState struct."},"functionSelector":"37404017","id":6842,"implemented":true,"kind":"function","modifiers":[],"name":"deployments","nameLocation":"29297:11:31","nodeType":"FunctionDefinition","parameters":{"id":6832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6831,"mutability":"mutable","name":"_deploymentId","nameLocation":"29317:13:31","nodeType":"VariableDeclaration","scope":6842,"src":"29309:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29309:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"29308:23:31"},"returnParameters":{"id":6836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6842,"src":"29355:22:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_memory_ptr","typeString":"struct DeploymentState"},"typeName":{"id":6834,"nodeType":"UserDefinedTypeName","pathNode":{"id":6833,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"29355:15:31"},"referencedDeclaration":5519,"src":"29355:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"src":"29354:24:31"},"scope":8014,"src":"29288:142:31","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[9607],"body":{"id":6855,"nodeType":"Block","src":"29542:56:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6848,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"29559:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29589:1:31","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":6850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29581:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29581:7:31","typeDescriptions":{}}},"id":6852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29581:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29559:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6847,"id":6854,"nodeType":"Return","src":"29552:39:31"}]},"documentation":{"id":6843,"nodeType":"StructuredDocumentation","src":"29436:49:31","text":" @inheritdoc IChugSplashManager"},"functionSelector":"e8ea2d08","id":6856,"implemented":true,"kind":"function","modifiers":[],"name":"isExecuting","nameLocation":"29499:11:31","nodeType":"FunctionDefinition","parameters":{"id":6844,"nodeType":"ParameterList","parameters":[],"src":"29510:2:31"},"returnParameters":{"id":6847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6856,"src":"29536:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6845,"name":"bool","nodeType":"ElementaryTypeName","src":"29536:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29535:6:31"},"scope":8014,"src":"29490:108:31","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[9688],"body":{"id":7058,"nodeType":"Block","src":"30275:2480:31","statements":[{"assignments":[6874],"declarations":[{"constant":false,"id":6874,"mutability":"mutable","name":"initialGasLeft","nameLocation":"30293:14:31","nodeType":"VariableDeclaration","scope":7058,"src":"30285:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6873,"name":"uint256","nodeType":"ElementaryTypeName","src":"30285:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6877,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6875,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"30310:7:31","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30310:9:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30285:34:31"},{"assignments":[6880],"declarations":[{"constant":false,"id":6880,"mutability":"mutable","name":"deployment","nameLocation":"30354:10:31","nodeType":"VariableDeclaration","scope":7058,"src":"30330:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":6879,"nodeType":"UserDefinedTypeName","pathNode":{"id":6878,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"30330:15:31"},"referencedDeclaration":5519,"src":"30330:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":6884,"initialValue":{"baseExpression":{"id":6881,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"30367:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":6883,"indexExpression":{"id":6882,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"30380:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30367:32:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"30330:69:31"},{"expression":{"arguments":[{"expression":{"id":6886,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"30449:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"30449:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6885,"name":"_assertCallerIsOwnerOrSelectedExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7983,"src":"30410:38:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$returns$__$","typeString":"function (bool) view"}},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30410:66:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6889,"nodeType":"ExpressionStatement","src":"30410:66:31"},{"assignments":[6891],"declarations":[{"constant":false,"id":6891,"mutability":"mutable","name":"numActions","nameLocation":"30495:10:31","nodeType":"VariableDeclaration","scope":7058,"src":"30487:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6890,"name":"uint256","nodeType":"ElementaryTypeName","src":"30487:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6894,"initialValue":{"expression":{"id":6892,"name":"_actions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6861,"src":"30508:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction memory[] memory"}},"id":6893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"30508:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30487:36:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6895,"name":"numActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6891,"src":"30697:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30711:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30697:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6902,"nodeType":"IfStatement","src":"30693:72:31","trueBody":{"id":6901,"nodeType":"Block","src":"30714:51:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6898,"name":"EmptyActionsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5791,"src":"30735:17:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30735:19:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6900,"nodeType":"RevertStatement","src":"30728:26:31"}]}},{"assignments":[6905],"declarations":[{"constant":false,"id":6905,"mutability":"mutable","name":"action","nameLocation":"30802:6:31","nodeType":"VariableDeclaration","scope":7058,"src":"30775:33:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction"},"typeName":{"id":6904,"nodeType":"UserDefinedTypeName","pathNode":{"id":6903,"name":"RawChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"30775:19:31"},"referencedDeclaration":5531,"src":"30775:19:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"}},"visibility":"internal"}],"id":6906,"nodeType":"VariableDeclarationStatement","src":"30775:33:31"},{"assignments":[6908],"declarations":[{"constant":false,"id":6908,"mutability":"mutable","name":"actionIndex","nameLocation":"30826:11:31","nodeType":"VariableDeclaration","scope":7058,"src":"30818:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6907,"name":"uint256","nodeType":"ElementaryTypeName","src":"30818:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6909,"nodeType":"VariableDeclarationStatement","src":"30818:19:31"},{"assignments":[6914],"declarations":[{"constant":false,"id":6914,"mutability":"mutable","name":"proof","nameLocation":"30864:5:31","nodeType":"VariableDeclaration","scope":7058,"src":"30847:22:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30847:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6913,"nodeType":"ArrayTypeName","src":"30847:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":6915,"nodeType":"VariableDeclarationStatement","src":"30847:22:31"},{"body":{"id":7050,"nodeType":"Block","src":"30920:1751:31","statements":[{"expression":{"id":6930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6926,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"30934:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":6927,"name":"_actions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6861,"src":"30943:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction memory[] memory"}},"id":6929,"indexExpression":{"id":6928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"30952:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30943:11:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"src":"30934:20:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":6931,"nodeType":"ExpressionStatement","src":"30934:20:31"},{"expression":{"id":6936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6932,"name":"actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"30968:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":6933,"name":"_actionIndexes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6864,"src":"30982:14:31","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6935,"indexExpression":{"id":6934,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"30997:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30982:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30968:31:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6937,"nodeType":"ExpressionStatement","src":"30968:31:31"},{"expression":{"id":6942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6938,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6914,"src":"31013:5:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":6939,"name":"_proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6868,"src":"31021:7:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":6941,"indexExpression":{"id":6940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"31029:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31021:10:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"31013:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6943,"nodeType":"ExpressionStatement","src":"31013:18:31"},{"condition":{"baseExpression":{"expression":{"id":6944,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"31050:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actions","nodeType":"MemberAccess","referencedDeclaration":5500,"src":"31050:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage","typeString":"bool[] storage ref"}},"id":6947,"indexExpression":{"id":6946,"name":"actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"31069:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31050:31:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6952,"nodeType":"IfStatement","src":"31046:100:31","trueBody":{"id":6951,"nodeType":"Block","src":"31083:63:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6948,"name":"ActionAlreadyExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5794,"src":"31108:21:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31108:23:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6950,"nodeType":"RevertStatement","src":"31101:30:31"}]}},{"condition":{"id":6978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31181:533:31","subExpression":{"arguments":[{"expression":{"id":6955,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"31221:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionRoot","nodeType":"MemberAccess","referencedDeclaration":5504,"src":"31221:21:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"expression":{"id":6960,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"31339:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":6961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"referenceName","nodeType":"MemberAccess","referencedDeclaration":5530,"src":"31339:20:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":6962,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"31389:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":6963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5526,"src":"31389:11:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":6964,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"31430:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":6965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionType","nodeType":"MemberAccess","referencedDeclaration":5522,"src":"31430:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"}},{"expression":{"id":6966,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"31477:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":6967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5528,"src":"31477:23:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":6968,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"31530:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":6969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5524,"src":"31530:11:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6958,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31299:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"31299:10:31","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31299:268:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6957,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"31264:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31264:325:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6972,"name":"actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"31611:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6973,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6914,"src":"31644:5:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"expression":{"id":6974,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"31671:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actions","nodeType":"MemberAccess","referencedDeclaration":5500,"src":"31671:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage","typeString":"bool[] storage ref"}},"id":6976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"31671:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6953,"name":"MerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"31182:10:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Lib_MerkleTree_$951_$","typeString":"type(library Lib_MerkleTree)"}},"id":6954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":862,"src":"31182:17:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,bytes32,uint256,bytes32[] memory,uint256) pure returns (bool)"}},"id":6977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31182:532:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6983,"nodeType":"IfStatement","src":"31160:629:31","trueBody":{"id":6982,"nodeType":"Block","src":"31729:60:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6979,"name":"InvalidMerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5797,"src":"31754:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31754:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6981,"nodeType":"RevertStatement","src":"31747:27:31"}]}},{"expression":{"id":6987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"31895:28:31","subExpression":{"expression":{"id":6984,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"31895:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"actionsExecuted","nodeType":"MemberAccess","referencedDeclaration":5510,"src":"31895:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6988,"nodeType":"ExpressionStatement","src":"31895:28:31"},{"expression":{"id":6995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":6989,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"31937:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":6992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actions","nodeType":"MemberAccess","referencedDeclaration":5500,"src":"31937:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage","typeString":"bool[] storage ref"}},"id":6993,"indexExpression":{"id":6991,"name":"actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"31956:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31937:31:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31971:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"31937:38:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6996,"nodeType":"ExpressionStatement","src":"31937:38:31"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"},"id":7001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6997,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"31994:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":6998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionType","nodeType":"MemberAccess","referencedDeclaration":5522,"src":"31994:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6999,"name":"ChugSplashActionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"32015:20:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ChugSplashActionType_$5545_$","typeString":"type(enum ChugSplashActionType)"}},"id":7000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DEPLOY_CONTRACT","nodeType":"MemberAccess","referencedDeclaration":5544,"src":"32015:36:31","typeDescriptions":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"}},"src":"31994:57:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"},"id":7036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7032,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"32459:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionType","nodeType":"MemberAccess","referencedDeclaration":5522,"src":"32459:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7034,"name":"ChugSplashActionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"32480:20:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ChugSplashActionType_$5545_$","typeString":"type(enum ChugSplashActionType)"}},"id":7035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"SET_STORAGE","nodeType":"MemberAccess","referencedDeclaration":5543,"src":"32480:32:31","typeDescriptions":{"typeIdentifier":"t_enum$_ChugSplashActionType_$5545","typeString":"enum ChugSplashActionType"}},"src":"32459:53:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7047,"nodeType":"Block","src":"32602:59:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7044,"name":"InvalidActionType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5800,"src":"32627:17:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32627:19:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7046,"nodeType":"RevertStatement","src":"32620:26:31"}]},"id":7048,"nodeType":"IfStatement","src":"32455:206:31","trueBody":{"id":7043,"nodeType":"Block","src":"32514:82:31","statements":[{"expression":{"arguments":[{"id":7038,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32549:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},{"id":7039,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"32561:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},{"id":7040,"name":"actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"32569:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"},{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7037,"name":"_setProxyStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"32532:16:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DeploymentState_$5519_memory_ptr_$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct DeploymentState memory,struct RawChugSplashAction memory,uint256)"}},"id":7041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32532:49:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7042,"nodeType":"ExpressionStatement","src":"32532:49:31"}]}},"id":7049,"nodeType":"IfStatement","src":"31990:671:31","trueBody":{"id":7031,"nodeType":"Block","src":"32053:396:31","statements":[{"expression":{"arguments":[{"id":7003,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32098:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},{"id":7004,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"32110:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},{"id":7005,"name":"actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"32118:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"},{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7002,"name":"_attemptContractDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7833,"src":"32071:26:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DeploymentState_$5519_storage_ptr_$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct DeploymentState storage pointer,struct RawChugSplashAction memory,uint256)"}},"id":7006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32071:59:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7007,"nodeType":"ExpressionStatement","src":"32071:59:31"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7008,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32174:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionsExecuted","nodeType":"MemberAccess","referencedDeclaration":5510,"src":"32174:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":7010,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32204:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actions","nodeType":"MemberAccess","referencedDeclaration":5500,"src":"32204:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage","typeString":"bool[] storage ref"}},"id":7012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"32204:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32174:55:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7014,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32253:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5502,"src":"32253:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32275:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32253:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32174:102:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":7023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7019,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32300:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"32300:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7021,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"32321:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":7022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"FAILED","nodeType":"MemberAccess","referencedDeclaration":5552,"src":"32321:23:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"32300:44:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32174:170:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7030,"nodeType":"IfStatement","src":"32149:286:31","trueBody":{"id":7029,"nodeType":"Block","src":"32363:72:31","statements":[{"expression":{"arguments":[{"id":7026,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32405:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}],"id":7025,"name":"_completeDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7867,"src":"32385:19:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DeploymentState_$5519_storage_ptr_$returns$__$","typeString":"function (struct DeploymentState storage pointer)"}},"id":7027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32385:31:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7028,"nodeType":"ExpressionStatement","src":"32385:31:31"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6920,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"30899:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6921,"name":"numActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6891,"src":"30903:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30899:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7051,"initializationExpression":{"assignments":[6917],"declarations":[{"constant":false,"id":6917,"mutability":"mutable","name":"i","nameLocation":"30892:1:31","nodeType":"VariableDeclaration","scope":7051,"src":"30884:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6916,"name":"uint256","nodeType":"ElementaryTypeName","src":"30884:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6919,"initialValue":{"hexValue":"30","id":6918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30896:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30884:13:31"},"loopExpression":{"expression":{"id":6924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30915:3:31","subExpression":{"id":6923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"30915:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6925,"nodeType":"ExpressionStatement","src":"30915:3:31"},"nodeType":"ForStatement","src":"30879:1792:31"},{"expression":{"arguments":[{"id":7053,"name":"initialGasLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6874,"src":"32705:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":7054,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"32721:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"32721:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7052,"name":"_payExecutorAndProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7947,"src":"32681:23:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":7056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32681:67:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7057,"nodeType":"ExpressionStatement","src":"32681:67:31"}]},"documentation":{"id":6857,"nodeType":"StructuredDocumentation","src":"29604:492:31","text":" @notice Deploys non-proxy contracts and sets proxy state variables. If the deployment does\nnot contain any proxies, it will be completed after all of the non-proxy contracts have been\ndeployed in this function.\n @param _actions Array of RawChugSplashAction structs containing the actions for the\n                 deployment.\n @param _actionIndexes Array of action indexes.\n @param _proofs Array of Merkle proofs for the actions."},"functionSelector":"a47d0801","id":7059,"implemented":true,"kind":"function","modifiers":[{"id":6871,"kind":"modifierInvocation","modifierName":{"id":6870,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1383,"src":"30262:12:31"},"nodeType":"ModifierInvocation","src":"30262:12:31"}],"name":"executeActions","nameLocation":"30110:14:31","nodeType":"FunctionDefinition","parameters":{"id":6869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6861,"mutability":"mutable","name":"_actions","nameLocation":"30163:8:31","nodeType":"VariableDeclaration","scope":7059,"src":"30134:37:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction[]"},"typeName":{"baseType":{"id":6859,"nodeType":"UserDefinedTypeName","pathNode":{"id":6858,"name":"RawChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"30134:19:31"},"referencedDeclaration":5531,"src":"30134:19:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"}},"id":6860,"nodeType":"ArrayTypeName","src":"30134:21:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_storage_$dyn_storage_ptr","typeString":"struct RawChugSplashAction[]"}},"visibility":"internal"},{"constant":false,"id":6864,"mutability":"mutable","name":"_actionIndexes","nameLocation":"30198:14:31","nodeType":"VariableDeclaration","scope":7059,"src":"30181:31:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6862,"name":"uint256","nodeType":"ElementaryTypeName","src":"30181:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6863,"nodeType":"ArrayTypeName","src":"30181:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6868,"mutability":"mutable","name":"_proofs","nameLocation":"30241:7:31","nodeType":"VariableDeclaration","scope":7059,"src":"30222:26:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":6865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30222:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6866,"nodeType":"ArrayTypeName","src":"30222:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":6867,"nodeType":"ArrayTypeName","src":"30222:11:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"30124:130:31"},"returnParameters":{"id":6872,"nodeType":"ParameterList","parameters":[],"src":"30275:0:31"},"scope":8014,"src":"30101:2654:31","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9699],"body":{"id":7262,"nodeType":"Block","src":"33579:2885:31","statements":[{"assignments":[7074],"declarations":[{"constant":false,"id":7074,"mutability":"mutable","name":"initialGasLeft","nameLocation":"33597:14:31","nodeType":"VariableDeclaration","scope":7262,"src":"33589:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7073,"name":"uint256","nodeType":"ElementaryTypeName","src":"33589:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7077,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":7075,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"33614:7:31","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":7076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33614:9:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33589:34:31"},{"assignments":[7080],"declarations":[{"constant":false,"id":7080,"mutability":"mutable","name":"deployment","nameLocation":"33658:10:31","nodeType":"VariableDeclaration","scope":7262,"src":"33634:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":7079,"nodeType":"UserDefinedTypeName","pathNode":{"id":7078,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"33634:15:31"},"referencedDeclaration":5519,"src":"33634:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":7084,"initialValue":{"baseExpression":{"id":7081,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"33671:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":7083,"indexExpression":{"id":7082,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"33684:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33671:32:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"33634:69:31"},{"expression":{"arguments":[{"expression":{"id":7086,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"33753:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"33753:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7085,"name":"_assertCallerIsOwnerOrSelectedExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7983,"src":"33714:38:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$returns$__$","typeString":"function (bool) view"}},"id":7088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33714:66:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7089,"nodeType":"ExpressionStatement","src":"33714:66:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7090,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"33795:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionsExecuted","nodeType":"MemberAccess","referencedDeclaration":5510,"src":"33795:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7092,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"33825:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numImmutableContracts","nodeType":"MemberAccess","referencedDeclaration":5508,"src":"33825:32:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33795:62:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7099,"nodeType":"IfStatement","src":"33791:126:31","trueBody":{"id":7098,"nodeType":"Block","src":"33859:58:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7095,"name":"InitiatedUpgradeTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5803,"src":"33880:24:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33880:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7097,"nodeType":"RevertStatement","src":"33873:33:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":7104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7100,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"33993:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"33993:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7102,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"34014:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":7103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"APPROVED","nodeType":"MemberAccess","referencedDeclaration":5548,"src":"34014:25:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"33993:46:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7109,"nodeType":"IfStatement","src":"33989:109:31","trueBody":{"id":7108,"nodeType":"Block","src":"34041:57:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7105,"name":"DeploymentIsNotApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"34062:23:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34062:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7107,"nodeType":"RevertStatement","src":"34055:32:31"}]}},{"assignments":[7111],"declarations":[{"constant":false,"id":7111,"mutability":"mutable","name":"numTargets","nameLocation":"34116:10:31","nodeType":"VariableDeclaration","scope":7262,"src":"34108:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"34108:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7114,"initialValue":{"expression":{"id":7112,"name":"_targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"34129:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"}},"id":7113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"34129:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34108:36:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7115,"name":"numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"34158:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7116,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"34172:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5502,"src":"34172:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34158:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7123,"nodeType":"IfStatement","src":"34154:96:31","trueBody":{"id":7122,"nodeType":"Block","src":"34192:58:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7119,"name":"IncorrectNumberOfTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5809,"src":"34213:24:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34213:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7121,"nodeType":"RevertStatement","src":"34206:33:31"}]}},{"assignments":[7126],"declarations":[{"constant":false,"id":7126,"mutability":"mutable","name":"target","nameLocation":"34284:6:31","nodeType":"VariableDeclaration","scope":7262,"src":"34260:30:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget"},"typeName":{"id":7125,"nodeType":"UserDefinedTypeName","pathNode":{"id":7124,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"34260:16:31"},"referencedDeclaration":5542,"src":"34260:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"visibility":"internal"}],"id":7127,"nodeType":"VariableDeclarationStatement","src":"34260:30:31"},{"assignments":[7132],"declarations":[{"constant":false,"id":7132,"mutability":"mutable","name":"proof","nameLocation":"34317:5:31","nodeType":"VariableDeclaration","scope":7262,"src":"34300:22:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34300:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7131,"nodeType":"ArrayTypeName","src":"34300:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":7133,"nodeType":"VariableDeclarationStatement","src":"34300:22:31"},{"body":{"id":7235,"nodeType":"Block","src":"34373:1784:31","statements":[{"expression":{"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7144,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"34387:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7145,"name":"_targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"34396:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"}},"id":7147,"indexExpression":{"id":7146,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7135,"src":"34405:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34396:11:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"src":"34387:20:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7149,"nodeType":"ExpressionStatement","src":"34387:20:31"},{"expression":{"id":7154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7150,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"34421:5:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7151,"name":"_proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7068,"src":"34429:7:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":7153,"indexExpression":{"id":7152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7135,"src":"34437:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34429:10:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"34421:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7155,"nodeType":"ExpressionStatement","src":"34421:18:31"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7156,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"34458:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5541,"src":"34458:23:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7158,"name":"IMMUTABLE_CONTRACT_KIND_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"34485:28:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"34458:55:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7164,"nodeType":"IfStatement","src":"34454:121:31","trueBody":{"id":7163,"nodeType":"Block","src":"34515:60:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7160,"name":"OnlyProxiesAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"34540:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34540:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7162,"nodeType":"RevertStatement","src":"34533:27:31"}]}},{"condition":{"id":7189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"34610:527:31","subExpression":{"arguments":[{"expression":{"id":7167,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"34650:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targetRoot","nodeType":"MemberAccess","referencedDeclaration":5506,"src":"34650:21:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"expression":{"id":7172,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"34768:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectName","nodeType":"MemberAccess","referencedDeclaration":5533,"src":"34768:18:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":7174,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"34816:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"referenceName","nodeType":"MemberAccess","referencedDeclaration":5535,"src":"34816:20:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":7176,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"34866:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5537,"src":"34866:11:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":7178,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"34907:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":5539,"src":"34907:21:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7180,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"34958:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5541,"src":"34958:23:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7170,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34728:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"34728:10:31","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34728:279:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7169,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"34693:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34693:336:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7184,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7135,"src":"35051:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7185,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7132,"src":"35074:5:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":7186,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"35101:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5502,"src":"35101:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7165,"name":"MerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"34611:10:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Lib_MerkleTree_$951_$","typeString":"type(library Lib_MerkleTree)"}},"id":7166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":862,"src":"34611:17:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,bytes32,uint256,bytes32[] memory,uint256) pure returns (bool)"}},"id":7188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34611:526:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7194,"nodeType":"IfStatement","src":"34589:623:31","trueBody":{"id":7193,"nodeType":"Block","src":"35152:60:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7190,"name":"InvalidMerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5797,"src":"35177:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35177:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7192,"nodeType":"RevertStatement","src":"35170:27:31"}]}},{"assignments":[7196],"declarations":[{"constant":false,"id":7196,"mutability":"mutable","name":"adapter","nameLocation":"35234:7:31","nodeType":"VariableDeclaration","scope":7235,"src":"35226:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7195,"name":"address","nodeType":"ElementaryTypeName","src":"35226:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7202,"initialValue":{"arguments":[{"expression":{"id":7199,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"35262:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5541,"src":"35262:23:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7197,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"35244:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adapters","nodeType":"MemberAccess","referencedDeclaration":9773,"src":"35244:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":7201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35244:42:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"35226:60:31"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7203,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7196,"src":"35304:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35323:1:31","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":7205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35315:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7204,"name":"address","nodeType":"ElementaryTypeName","src":"35315:7:31","typeDescriptions":{}}},"id":7207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35315:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"35304:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7213,"nodeType":"IfStatement","src":"35300:88:31","trueBody":{"id":7212,"nodeType":"Block","src":"35327:61:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7209,"name":"InvalidContractKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5785,"src":"35352:19:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35352:21:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7211,"nodeType":"RevertStatement","src":"35345:28:31"}]}},{"assignments":[7215,null],"declarations":[{"constant":false,"id":7215,"mutability":"mutable","name":"success","nameLocation":"35929:7:31","nodeType":"VariableDeclaration","scope":7235,"src":"35924:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7214,"name":"bool","nodeType":"ElementaryTypeName","src":"35924:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7227,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":7220,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"35995:13:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyAdapter_$9887_$","typeString":"type(contract IProxyAdapter)"}},"id":7221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"initiateUpgrade","nodeType":"MemberAccess","referencedDeclaration":9858,"src":"35995:29:31","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$returns$__$","typeString":"function IProxyAdapter.initiateUpgrade(address payable)"}},{"components":[{"expression":{"id":7222,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7126,"src":"36027:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5537,"src":"36027:11:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":7224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36026:13:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$returns$__$","typeString":"function IProxyAdapter.initiateUpgrade(address payable)"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":7218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35980:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"35980:14:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35980:60:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7216,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7196,"src":"35942:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"35942:20:31","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":7226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35942:112:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"35923:131:31"},{"condition":{"id":7229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"36072:8:31","subExpression":{"id":7228,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"36073:7:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7234,"nodeType":"IfStatement","src":"36068:79:31","trueBody":{"id":7233,"nodeType":"Block","src":"36082:65:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7230,"name":"FailedToInitiateUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"36107:23:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36107:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7232,"nodeType":"RevertStatement","src":"36100:32:31"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7138,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7135,"src":"34352:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7139,"name":"numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"34356:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34352:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7236,"initializationExpression":{"assignments":[7135],"declarations":[{"constant":false,"id":7135,"mutability":"mutable","name":"i","nameLocation":"34345:1:31","nodeType":"VariableDeclaration","scope":7236,"src":"34337:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7134,"name":"uint256","nodeType":"ElementaryTypeName","src":"34337:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7137,"initialValue":{"hexValue":"30","id":7136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34349:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"34337:13:31"},"loopExpression":{"expression":{"id":7142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"34368:3:31","subExpression":{"id":7141,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7135,"src":"34368:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7143,"nodeType":"ExpressionStatement","src":"34368:3:31"},"nodeType":"ForStatement","src":"34332:1825:31"},{"expression":{"id":7242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7237,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"36212:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"36212:17:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":7240,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"36232:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":7241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PROXIES_INITIATED","nodeType":"MemberAccess","referencedDeclaration":5549,"src":"36232:34:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"36212:54:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"id":7243,"nodeType":"ExpressionStatement","src":"36212:54:31"},{"eventCall":{"arguments":[{"id":7245,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"36299:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7246,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"36319:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36319:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7244,"name":"ProxiesInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8060,"src":"36282:16:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36282:50:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7249,"nodeType":"EmitStatement","src":"36277:55:31"},{"expression":{"arguments":[{"hexValue":"50726f78696573496e69746961746564","id":7253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36360:18:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f3ac1230ff26091a94b75ff8e5fad20b9e84d2feff74d722872eb39af02fd34","typeString":"literal_string \"ProxiesInitiated\""},"value":"ProxiesInitiated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f3ac1230ff26091a94b75ff8e5fad20b9e84d2feff74d722872eb39af02fd34","typeString":"literal_string \"ProxiesInitiated\""}],"expression":{"id":7250,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"36342:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"36342:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":7254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36342:37:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7255,"nodeType":"ExpressionStatement","src":"36342:37:31"},{"expression":{"arguments":[{"id":7257,"name":"initialGasLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7074,"src":"36414:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":7258,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"36430:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"36430:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7256,"name":"_payExecutorAndProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7947,"src":"36390:23:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":7260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36390:67:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7261,"nodeType":"ExpressionStatement","src":"36390:67:31"}]},"documentation":{"id":7060,"nodeType":"StructuredDocumentation","src":"32761:682:31","text":" @notice Initiate the proxies in an upgrade. This must be called after the contracts are\ndeployment is approved, and before the rest of the execution process occurs. In this\nfunction, all of the proxies in the deployment are disabled by setting their implementations\nto a contract that can only be called by the team's ChugSplashManagerProxy. This must occur\nin a single transaction to make the process atomic, which means the proxies are upgraded as a\nsingle unit.\n @param _targets Array of ChugSplashTarget structs containing the targets for the deployment.\n @param _proofs Array of Merkle proofs for the targets."},"functionSelector":"9449a44f","id":7263,"implemented":true,"kind":"function","modifiers":[{"id":7071,"kind":"modifierInvocation","modifierName":{"id":7070,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1383,"src":"33566:12:31"},"nodeType":"ModifierInvocation","src":"33566:12:31"}],"name":"initiateUpgrade","nameLocation":"33457:15:31","nodeType":"FunctionDefinition","parameters":{"id":7069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7064,"mutability":"mutable","name":"_targets","nameLocation":"33508:8:31","nodeType":"VariableDeclaration","scope":7263,"src":"33482:34:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget[]"},"typeName":{"baseType":{"id":7062,"nodeType":"UserDefinedTypeName","pathNode":{"id":7061,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"33482:16:31"},"referencedDeclaration":5542,"src":"33482:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"id":7063,"nodeType":"ArrayTypeName","src":"33482:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_storage_$dyn_storage_ptr","typeString":"struct ChugSplashTarget[]"}},"visibility":"internal"},{"constant":false,"id":7068,"mutability":"mutable","name":"_proofs","nameLocation":"33545:7:31","nodeType":"VariableDeclaration","scope":7263,"src":"33526:26:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":7065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33526:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7066,"nodeType":"ArrayTypeName","src":"33526:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":7067,"nodeType":"ArrayTypeName","src":"33526:11:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"33472:86:31"},"returnParameters":{"id":7072,"nodeType":"ParameterList","parameters":[],"src":"33579:0:31"},"scope":8014,"src":"33448:3016:31","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9710],"body":{"id":7476,"nodeType":"Block","src":"36967:2521:31","statements":[{"assignments":[7278],"declarations":[{"constant":false,"id":7278,"mutability":"mutable","name":"initialGasLeft","nameLocation":"36985:14:31","nodeType":"VariableDeclaration","scope":7476,"src":"36977:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7277,"name":"uint256","nodeType":"ElementaryTypeName","src":"36977:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7281,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":7279,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"37002:7:31","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":7280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37002:9:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36977:34:31"},{"assignments":[7284],"declarations":[{"constant":false,"id":7284,"mutability":"mutable","name":"deployment","nameLocation":"37046:10:31","nodeType":"VariableDeclaration","scope":7476,"src":"37022:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":7283,"nodeType":"UserDefinedTypeName","pathNode":{"id":7282,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"37022:15:31"},"referencedDeclaration":5519,"src":"37022:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":7288,"initialValue":{"baseExpression":{"id":7285,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"37059:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":7287,"indexExpression":{"id":7286,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"37072:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37059:32:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"37022:69:31"},{"expression":{"arguments":[{"expression":{"id":7290,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"37141:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"37141:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7289,"name":"_assertCallerIsOwnerOrSelectedExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7983,"src":"37102:38:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$returns$__$","typeString":"function (bool) view"}},"id":7292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37102:66:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7293,"nodeType":"ExpressionStatement","src":"37102:66:31"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7294,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"37183:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37213:1:31","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":7296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"37205:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37205:7:31","typeDescriptions":{}}},"id":7298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37205:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37183:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7304,"nodeType":"IfStatement","src":"37179:90:31","trueBody":{"id":7303,"nodeType":"Block","src":"37217:52:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7300,"name":"NoActiveDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5761,"src":"37238:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37238:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7302,"nodeType":"RevertStatement","src":"37231:27:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7305,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"37283:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actionsExecuted","nodeType":"MemberAccess","referencedDeclaration":5510,"src":"37283:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":7307,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"37313:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"actions","nodeType":"MemberAccess","referencedDeclaration":5500,"src":"37313:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage","typeString":"bool[] storage ref"}},"id":7309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"37313:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37283:55:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7315,"nodeType":"IfStatement","src":"37279:119:31","trueBody":{"id":7314,"nodeType":"Block","src":"37340:58:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7311,"name":"FinalizedUpgradeTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"37361:24:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37361:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7313,"nodeType":"RevertStatement","src":"37354:33:31"}]}},{"assignments":[7317],"declarations":[{"constant":false,"id":7317,"mutability":"mutable","name":"numTargets","nameLocation":"37416:10:31","nodeType":"VariableDeclaration","scope":7476,"src":"37408:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7316,"name":"uint256","nodeType":"ElementaryTypeName","src":"37408:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7320,"initialValue":{"expression":{"id":7318,"name":"_targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7268,"src":"37429:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"}},"id":7319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"37429:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"37408:36:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7321,"name":"numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7317,"src":"37458:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7322,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"37472:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5502,"src":"37472:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37458:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7329,"nodeType":"IfStatement","src":"37454:96:31","trueBody":{"id":7328,"nodeType":"Block","src":"37492:58:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7325,"name":"IncorrectNumberOfTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5809,"src":"37513:24:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37513:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7327,"nodeType":"RevertStatement","src":"37506:33:31"}]}},{"assignments":[7332],"declarations":[{"constant":false,"id":7332,"mutability":"mutable","name":"target","nameLocation":"37584:6:31","nodeType":"VariableDeclaration","scope":7476,"src":"37560:30:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget"},"typeName":{"id":7331,"nodeType":"UserDefinedTypeName","pathNode":{"id":7330,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"37560:16:31"},"referencedDeclaration":5542,"src":"37560:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"visibility":"internal"}],"id":7333,"nodeType":"VariableDeclarationStatement","src":"37560:30:31"},{"assignments":[7338],"declarations":[{"constant":false,"id":7338,"mutability":"mutable","name":"proof","nameLocation":"37617:5:31","nodeType":"VariableDeclaration","scope":7476,"src":"37600:22:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37600:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7337,"nodeType":"ArrayTypeName","src":"37600:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":7339,"nodeType":"VariableDeclarationStatement","src":"37600:22:31"},{"body":{"id":7464,"nodeType":"Block","src":"37673:1689:31","statements":[{"expression":{"id":7354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7350,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"37687:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7351,"name":"_targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7268,"src":"37696:8:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget memory[] memory"}},"id":7353,"indexExpression":{"id":7352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"37705:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37696:11:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"src":"37687:20:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7355,"nodeType":"ExpressionStatement","src":"37687:20:31"},{"expression":{"id":7360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7356,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"37721:5:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7357,"name":"_proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"37729:7:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":7359,"indexExpression":{"id":7358,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"37737:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37729:10:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"37721:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7361,"nodeType":"ExpressionStatement","src":"37721:18:31"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7362,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"37758:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5541,"src":"37758:23:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7364,"name":"IMMUTABLE_CONTRACT_KIND_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"37785:28:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37758:55:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7370,"nodeType":"IfStatement","src":"37754:121:31","trueBody":{"id":7369,"nodeType":"Block","src":"37815:60:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7366,"name":"OnlyProxiesAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"37840:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37840:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7368,"nodeType":"RevertStatement","src":"37833:27:31"}]}},{"condition":{"id":7395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37910:527:31","subExpression":{"arguments":[{"expression":{"id":7373,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"37950:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targetRoot","nodeType":"MemberAccess","referencedDeclaration":5506,"src":"37950:21:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"expression":{"id":7378,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38068:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectName","nodeType":"MemberAccess","referencedDeclaration":5533,"src":"38068:18:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":7380,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38116:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"referenceName","nodeType":"MemberAccess","referencedDeclaration":5535,"src":"38116:20:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":7382,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38166:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5537,"src":"38166:11:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":7384,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38207:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":5539,"src":"38207:21:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":7386,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38258:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5541,"src":"38258:23:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38028:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"38028:10:31","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38028:279:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7375,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"37993:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37993:336:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7390,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"38351:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7391,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"38374:5:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":7392,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"38401:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5502,"src":"38401:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7371,"name":"MerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"37911:10:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Lib_MerkleTree_$951_$","typeString":"type(library Lib_MerkleTree)"}},"id":7372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":862,"src":"37911:17:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,bytes32,uint256,bytes32[] memory,uint256) pure returns (bool)"}},"id":7394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37911:526:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7400,"nodeType":"IfStatement","src":"37889:623:31","trueBody":{"id":7399,"nodeType":"Block","src":"38452:60:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7396,"name":"InvalidMerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5797,"src":"38477:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38477:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7398,"nodeType":"RevertStatement","src":"38470:27:31"}]}},{"assignments":[7402],"declarations":[{"constant":false,"id":7402,"mutability":"mutable","name":"adapter","nameLocation":"38605:7:31","nodeType":"VariableDeclaration","scope":7464,"src":"38597:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7401,"name":"address","nodeType":"ElementaryTypeName","src":"38597:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7408,"initialValue":{"arguments":[{"expression":{"id":7405,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38633:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5541,"src":"38633:23:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7403,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"38615:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adapters","nodeType":"MemberAccess","referencedDeclaration":9773,"src":"38615:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":7407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38615:42:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"38597:60:31"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7409,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"38675:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38694:1:31","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":7411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"38686:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7410,"name":"address","nodeType":"ElementaryTypeName","src":"38686:7:31","typeDescriptions":{}}},"id":7413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38686:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"38675:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7419,"nodeType":"IfStatement","src":"38671:88:31","trueBody":{"id":7418,"nodeType":"Block","src":"38698:61:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7415,"name":"InvalidContractKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5785,"src":"38723:19:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38723:21:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7417,"nodeType":"RevertStatement","src":"38716:28:31"}]}},{"assignments":[7421,null],"declarations":[{"constant":false,"id":7421,"mutability":"mutable","name":"success","nameLocation":"38839:7:31","nodeType":"VariableDeclaration","scope":7464,"src":"38834:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7420,"name":"bool","nodeType":"ElementaryTypeName","src":"38834:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7435,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":7426,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"38905:13:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyAdapter_$9887_$","typeString":"type(contract IProxyAdapter)"}},"id":7427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeUpgrade","nodeType":"MemberAccess","referencedDeclaration":9866,"src":"38905:29:31","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$_t_address_$returns$__$","typeString":"function IProxyAdapter.finalizeUpgrade(address payable,address)"}},{"components":[{"expression":{"id":7428,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38937:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5537,"src":"38937:11:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":7430,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"38950:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":5539,"src":"38950:21:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38936:36:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_address_$","typeString":"tuple(address payable,address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$_t_address_$returns$__$","typeString":"function IProxyAdapter.finalizeUpgrade(address payable,address)"},{"typeIdentifier":"t_tuple$_t_address_payable_$_t_address_$","typeString":"tuple(address payable,address)"}],"expression":{"id":7424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38890:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"38890:14:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38890:83:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7422,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"38852:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"38852:20:31","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":7434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38852:135:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"38833:154:31"},{"condition":{"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"39005:8:31","subExpression":{"id":7436,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7421,"src":"39006:7:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7442,"nodeType":"IfStatement","src":"39001:79:31","trueBody":{"id":7441,"nodeType":"Block","src":"39015:65:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7438,"name":"FailedToFinalizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"39040:23:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39040:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7440,"nodeType":"RevertStatement","src":"39033:32:31"}]}},{"eventCall":{"arguments":[{"id":7444,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"39129:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":7445,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"39165:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5537,"src":"39165:11:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":7447,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"39194:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectName","nodeType":"MemberAccess","referencedDeclaration":5533,"src":"39194:18:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":7449,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"39230:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"referenceName","nodeType":"MemberAccess","referencedDeclaration":5535,"src":"39230:20:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7443,"name":"ProxyUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8070,"src":"39098:13:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,address,string memory,string memory)"}},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39098:166:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7452,"nodeType":"EmitStatement","src":"39093:171:31"},{"expression":{"arguments":[{"hexValue":"50726f78795570677261646564","id":7456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39304:15:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_19e3af283a96bd8d6e53f90b16be3952f026990932fb08e68e91fb43532287dd","typeString":"literal_string \"ProxyUpgraded\""},"value":"ProxyUpgraded"},{"arguments":[{"expression":{"id":7459,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"39338:6:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_memory_ptr","typeString":"struct ChugSplashTarget memory"}},"id":7460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5537,"src":"39338:11:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":7457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39321:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"39321:16:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39321:29:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19e3af283a96bd8d6e53f90b16be3952f026990932fb08e68e91fb43532287dd","typeString":"literal_string \"ProxyUpgraded\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7453,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"39278:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announceWithData","nodeType":"MemberAccess","referencedDeclaration":9766,"src":"39278:25:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) external"}},"id":7462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39278:73:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7463,"nodeType":"ExpressionStatement","src":"39278:73:31"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7344,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"37652:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7345,"name":"numTargets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7317,"src":"37656:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37652:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7465,"initializationExpression":{"assignments":[7341],"declarations":[{"constant":false,"id":7341,"mutability":"mutable","name":"i","nameLocation":"37645:1:31","nodeType":"VariableDeclaration","scope":7465,"src":"37637:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7340,"name":"uint256","nodeType":"ElementaryTypeName","src":"37637:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7343,"initialValue":{"hexValue":"30","id":7342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37649:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"37637:13:31"},"loopExpression":{"expression":{"id":7348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"37668:3:31","subExpression":{"id":7347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"37668:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7349,"nodeType":"ExpressionStatement","src":"37668:3:31"},"nodeType":"ForStatement","src":"37632:1730:31"},{"expression":{"arguments":[{"id":7467,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"39392:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}],"id":7466,"name":"_completeDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7867,"src":"39372:19:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DeploymentState_$5519_storage_ptr_$returns$__$","typeString":"function (struct DeploymentState storage pointer)"}},"id":7468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39372:31:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7469,"nodeType":"ExpressionStatement","src":"39372:31:31"},{"expression":{"arguments":[{"id":7471,"name":"initialGasLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7278,"src":"39438:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":7472,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"39454:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remoteExecution","nodeType":"MemberAccess","referencedDeclaration":5516,"src":"39454:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7470,"name":"_payExecutorAndProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7947,"src":"39414:23:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39414:67:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7475,"nodeType":"ExpressionStatement","src":"39414:67:31"}]},"documentation":{"id":7264,"nodeType":"StructuredDocumentation","src":"36470:361:31","text":" @notice Finalizes the upgrade by upgrading all proxies to their new implementations. This\n         occurs in a single transaction to ensure that the upgrade is atomic.\n @param _targets Array of ChugSplashTarget structs containing the targets for the deployment.\n @param _proofs Array of Merkle proofs for the targets."},"functionSelector":"f23d6142","id":7477,"implemented":true,"kind":"function","modifiers":[{"id":7275,"kind":"modifierInvocation","modifierName":{"id":7274,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":1383,"src":"36954:12:31"},"nodeType":"ModifierInvocation","src":"36954:12:31"}],"name":"finalizeUpgrade","nameLocation":"36845:15:31","nodeType":"FunctionDefinition","parameters":{"id":7273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7268,"mutability":"mutable","name":"_targets","nameLocation":"36896:8:31","nodeType":"VariableDeclaration","scope":7477,"src":"36870:34:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget[]"},"typeName":{"baseType":{"id":7266,"nodeType":"UserDefinedTypeName","pathNode":{"id":7265,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"36870:16:31"},"referencedDeclaration":5542,"src":"36870:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"id":7267,"nodeType":"ArrayTypeName","src":"36870:18:31","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_storage_$dyn_storage_ptr","typeString":"struct ChugSplashTarget[]"}},"visibility":"internal"},{"constant":false,"id":7272,"mutability":"mutable","name":"_proofs","nameLocation":"36933:7:31","nodeType":"VariableDeclaration","scope":7477,"src":"36914:26:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":7269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36914:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7270,"nodeType":"ArrayTypeName","src":"36914:9:31","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":7271,"nodeType":"ArrayTypeName","src":"36914:11:31","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"36860:86:31"},"returnParameters":{"id":7276,"nodeType":"ParameterList","parameters":[],"src":"36967:0:31"},"scope":8014,"src":"36836:2652:31","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9639],"body":{"id":7503,"nodeType":"Block","src":"39791:179:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7485,"name":"allowManagedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"39821:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":7488,"name":"MANAGED_PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"39869:21:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7489,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"39892:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7486,"name":"managedService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"39846:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$2184","typeString":"contract IAccessControl"}},"id":7487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":2151,"src":"39846:22:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":7490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39846:52:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39821:77:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7492,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39820:79:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"id":7493,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5719,"src":"39915:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7495,"indexExpression":{"id":7494,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"39925:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39915:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39820:111:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7497,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"39947:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7498,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1006,"src":"39956:5:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39956:7:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39947:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"39820:143:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7484,"id":7502,"nodeType":"Return","src":"39801:162:31"}]},"documentation":{"id":7478,"nodeType":"StructuredDocumentation","src":"39494:230:31","text":" @notice Determines if a given address is allowed to propose deployments.\n @param _addr Address to check.\n @return True if the address is allowed to propose deployments, otherwise false."},"functionSelector":"74ec29a0","id":7504,"implemented":true,"kind":"function","modifiers":[],"name":"isProposer","nameLocation":"39738:10:31","nodeType":"FunctionDefinition","parameters":{"id":7481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7480,"mutability":"mutable","name":"_addr","nameLocation":"39757:5:31","nodeType":"VariableDeclaration","scope":7504,"src":"39749:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7479,"name":"address","nodeType":"ElementaryTypeName","src":"39749:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39748:15:31"},"returnParameters":{"id":7484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7504,"src":"39785:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7482,"name":"bool","nodeType":"ElementaryTypeName","src":"39785:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39784:6:31"},"scope":8014,"src":"39729:241:31","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7514,"nodeType":"Block","src":"40204:61:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7510,"name":"totalExecutorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"40221:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7511,"name":"totalProtocolDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"40241:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40221:37:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7509,"id":7513,"nodeType":"Return","src":"40214:44:31"}]},"documentation":{"id":7505,"nodeType":"StructuredDocumentation","src":"39976:172:31","text":" @notice Returns the total debt owed to executors and the protocol creators.\n @return Total debt owed to executors and the protocol creators."},"functionSelector":"fc7b9c18","id":7515,"implemented":true,"kind":"function","modifiers":[],"name":"totalDebt","nameLocation":"40162:9:31","nodeType":"FunctionDefinition","parameters":{"id":7506,"nodeType":"ParameterList","parameters":[],"src":"40171:2:31"},"returnParameters":{"id":7509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7515,"src":"40195:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7507,"name":"uint256","nodeType":"ElementaryTypeName","src":"40195:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40194:9:31"},"scope":8014,"src":"40153:112:31","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7533,"nodeType":"Block","src":"40658:125:31","statements":[{"assignments":[7525],"declarations":[{"constant":false,"id":7525,"mutability":"mutable","name":"deployment","nameLocation":"40692:10:31","nodeType":"VariableDeclaration","scope":7533,"src":"40668:34:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":7524,"nodeType":"UserDefinedTypeName","pathNode":{"id":7523,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"40668:15:31"},"referencedDeclaration":5519,"src":"40668:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"id":7529,"initialValue":{"baseExpression":{"id":7526,"name":"_deployments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"40705:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_DeploymentState_$5519_storage_$","typeString":"mapping(bytes32 => struct DeploymentState storage ref)"}},"id":7528,"indexExpression":{"id":7527,"name":"_deploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7518,"src":"40718:13:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40705:27:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage","typeString":"struct DeploymentState storage ref"}},"nodeType":"VariableDeclarationStatement","src":"40668:64:31"},{"expression":{"expression":{"id":7530,"name":"deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7525,"src":"40749:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"selectedExecutor","nodeType":"MemberAccess","referencedDeclaration":5514,"src":"40749:27:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7522,"id":7532,"nodeType":"Return","src":"40742:34:31"}]},"documentation":{"id":7516,"nodeType":"StructuredDocumentation","src":"40271:300:31","text":" @notice Queries the selected executor for a given project/deployment. This will return\naddress(0) if the deployment is being self-executed by the owner.\n @param _deploymentId ID of the deployment to query.\n @return Address of the selected executor."},"functionSelector":"61f5499f","id":7534,"implemented":true,"kind":"function","modifiers":[],"name":"getSelectedExecutor","nameLocation":"40585:19:31","nodeType":"FunctionDefinition","parameters":{"id":7519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7518,"mutability":"mutable","name":"_deploymentId","nameLocation":"40613:13:31","nodeType":"VariableDeclaration","scope":7534,"src":"40605:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40605:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40604:23:31"},"returnParameters":{"id":7522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7534,"src":"40649:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7520,"name":"address","nodeType":"ElementaryTypeName","src":"40649:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40648:9:31"},"scope":8014,"src":"40576:207:31","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7631,"nodeType":"Block","src":"41215:1015:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":7550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7546,"name":"_deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7538,"src":"41229:11:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_memory_ptr","typeString":"struct DeploymentState memory"}},"id":7547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"41229:18:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7548,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"41251:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":7549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PROXIES_INITIATED","nodeType":"MemberAccess","referencedDeclaration":5549,"src":"41251:34:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"41229:56:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7555,"nodeType":"IfStatement","src":"41225:118:31","trueBody":{"id":7554,"nodeType":"Block","src":"41287:56:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7551,"name":"ProxiesAreNotInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5824,"src":"41308:22:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41308:24:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7553,"nodeType":"RevertStatement","src":"41301:31:31"}]}},{"assignments":[7557],"declarations":[{"constant":false,"id":7557,"mutability":"mutable","name":"adapter","nameLocation":"41413:7:31","nodeType":"VariableDeclaration","scope":7631,"src":"41405:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7556,"name":"address","nodeType":"ElementaryTypeName","src":"41405:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7563,"initialValue":{"arguments":[{"expression":{"id":7560,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7541,"src":"41441:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5528,"src":"41441:24:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7558,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"41423:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adapters","nodeType":"MemberAccess","referencedDeclaration":9773,"src":"41423:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":7562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41423:43:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"41405:61:31"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7564,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7541,"src":"41481:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5528,"src":"41481:24:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7566,"name":"IMMUTABLE_CONTRACT_KIND_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"41509:28:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41481:56:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7572,"nodeType":"IfStatement","src":"41477:114:31","trueBody":{"id":7571,"nodeType":"Block","src":"41539:52:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7568,"name":"OnlyProxiesAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5812,"src":"41560:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41560:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7570,"nodeType":"RevertStatement","src":"41553:27:31"}]}},{"assignments":[7574,7576,7578],"declarations":[{"constant":false,"id":7574,"mutability":"mutable","name":"key","nameLocation":"41610:3:31","nodeType":"VariableDeclaration","scope":7631,"src":"41602:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41602:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7576,"mutability":"mutable","name":"offset","nameLocation":"41621:6:31","nodeType":"VariableDeclaration","scope":7631,"src":"41615:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7575,"name":"uint8","nodeType":"ElementaryTypeName","src":"41615:5:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7578,"mutability":"mutable","name":"val","nameLocation":"41642:3:31","nodeType":"VariableDeclaration","scope":7631,"src":"41629:16:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7577,"name":"bytes","nodeType":"ElementaryTypeName","src":"41629:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7591,"initialValue":{"arguments":[{"expression":{"id":7581,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7541,"src":"41673:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5524,"src":"41673:12:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":7584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41700:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41700:7:31","typeDescriptions":{}}},{"id":7586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41709:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7585,"name":"uint8","nodeType":"ElementaryTypeName","src":"41709:5:31","typeDescriptions":{}}},{"id":7588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41716:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7587,"name":"bytes","nodeType":"ElementaryTypeName","src":"41716:5:31","typeDescriptions":{}}}],"id":7589,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"41699:23:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_uint8_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(bytes32),type(uint8),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_uint8_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(bytes32),type(uint8),type(bytes storage pointer))"}],"expression":{"id":7579,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41649:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"41649:10:31","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41649:83:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes32,uint8,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"41601:131:31"},{"assignments":[7593,null],"declarations":[{"constant":false,"id":7593,"mutability":"mutable","name":"success","nameLocation":"41880:7:31","nodeType":"VariableDeclaration","scope":7631,"src":"41875:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7592,"name":"bool","nodeType":"ElementaryTypeName","src":"41875:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7608,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":7598,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"41942:13:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyAdapter_$9887_$","typeString":"type(contract IProxyAdapter)"}},"id":7599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"setStorage","nodeType":"MemberAccess","referencedDeclaration":9878,"src":"41942:24:31","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function IProxyAdapter.setStorage(address payable,bytes32,uint8,bytes memory)"}},{"components":[{"expression":{"id":7600,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7541,"src":"41969:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5526,"src":"41969:12:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":7602,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"41983:3:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7603,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"41988:6:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7604,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7578,"src":"41996:3:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":7605,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"41968:32:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes32,uint8,bytes memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_payable_$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function IProxyAdapter.setStorage(address payable,bytes32,uint8,bytes memory)"},{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes32,uint8,bytes memory)"}],"expression":{"id":7596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41927:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"41927:14:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41927:74:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7594,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"41893:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"41893:20:31","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":7607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41893:118:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"41874:137:31"},{"condition":{"id":7610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42025:8:31","subExpression":{"id":7609,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7593,"src":"42026:7:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7615,"nodeType":"IfStatement","src":"42021:64:31","trueBody":{"id":7614,"nodeType":"Block","src":"42035:50:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7611,"name":"SetStorageFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"42056:16:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42056:18:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7613,"nodeType":"RevertStatement","src":"42049:25:31"}]}},{"eventCall":{"arguments":[{"id":7617,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"42116:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":7618,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7541,"src":"42136:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":5526,"src":"42136:12:31","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7620,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"42150:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42150:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7622,"name":"_actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7543,"src":"42164:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7616,"name":"SetProxyStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8053,"src":"42100:15:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256)"}},"id":7623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42100:77:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7624,"nodeType":"EmitStatement","src":"42095:82:31"},{"expression":{"arguments":[{"hexValue":"53657450726f787953746f72616765","id":7628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42205:17:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_51965c048adbd7512d3135672fe4d6ef1deafe15d18a4cb3d048efd493c6f238","typeString":"literal_string \"SetProxyStorage\""},"value":"SetProxyStorage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51965c048adbd7512d3135672fe4d6ef1deafe15d18a4cb3d048efd493c6f238","typeString":"literal_string \"SetProxyStorage\""}],"expression":{"id":7625,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"42187:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"42187:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":7629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42187:36:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7630,"nodeType":"ExpressionStatement","src":"42187:36:31"}]},"documentation":{"id":7535,"nodeType":"StructuredDocumentation","src":"40789:262:31","text":" @notice Modifies a storage slot value within a proxy contract.\n @param _deployment The current deployment state struct.\n @param _action The `SET_STORAGE` action to execute.\n @param _actionIndex The index of the action."},"id":7632,"implemented":true,"kind":"function","modifiers":[],"name":"_setProxyStorage","nameLocation":"41065:16:31","nodeType":"FunctionDefinition","parameters":{"id":7544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7538,"mutability":"mutable","name":"_deployment","nameLocation":"41114:11:31","nodeType":"VariableDeclaration","scope":7632,"src":"41091:34:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_memory_ptr","typeString":"struct DeploymentState"},"typeName":{"id":7537,"nodeType":"UserDefinedTypeName","pathNode":{"id":7536,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"41091:15:31"},"referencedDeclaration":5519,"src":"41091:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"},{"constant":false,"id":7541,"mutability":"mutable","name":"_action","nameLocation":"41162:7:31","nodeType":"VariableDeclaration","scope":7632,"src":"41135:34:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction"},"typeName":{"id":7540,"nodeType":"UserDefinedTypeName","pathNode":{"id":7539,"name":"RawChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"41135:19:31"},"referencedDeclaration":5531,"src":"41135:19:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"}},"visibility":"internal"},{"constant":false,"id":7543,"mutability":"mutable","name":"_actionIndex","nameLocation":"41187:12:31","nodeType":"VariableDeclaration","scope":7632,"src":"41179:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7542,"name":"uint256","nodeType":"ElementaryTypeName","src":"41179:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41081:124:31"},"returnParameters":{"id":7545,"nodeType":"ParameterList","parameters":[],"src":"41215:0:31"},"scope":8014,"src":"41056:1174:31","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7832,"nodeType":"Block","src":"42986:3332:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"},"id":7648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7644,"name":"_deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7636,"src":"43000:11:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"43000:18:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":7646,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"43022:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":7647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"APPROVED","nodeType":"MemberAccess","referencedDeclaration":5548,"src":"43022:25:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"43000:47:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7653,"nodeType":"IfStatement","src":"42996:110:31","trueBody":{"id":7652,"nodeType":"Block","src":"43049:57:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7649,"name":"DeploymentIsNotApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"43070:23:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43070:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7651,"nodeType":"RevertStatement","src":"43063:32:31"}]}},{"assignments":[7655,7657],"declarations":[{"constant":false,"id":7655,"mutability":"mutable","name":"salt","nameLocation":"43125:4:31","nodeType":"VariableDeclaration","scope":7832,"src":"43117:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43117:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7657,"mutability":"mutable","name":"creationCodeWithConstructorArgs","nameLocation":"43144:31:31","nodeType":"VariableDeclaration","scope":7832,"src":"43131:44:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7656,"name":"bytes","nodeType":"ElementaryTypeName","src":"43131:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7668,"initialValue":{"arguments":[{"expression":{"id":7660,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7639,"src":"43203:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5524,"src":"43203:12:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":7663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43230:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43230:7:31","typeDescriptions":{}}},{"id":7665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43239:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7664,"name":"bytes","nodeType":"ElementaryTypeName","src":"43239:5:31","typeDescriptions":{}}}],"id":7666,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"43229:16:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(bytes32),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(bytes32),type(bytes storage pointer))"}],"expression":{"id":7658,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43179:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"43179:10:31","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43179:76:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes32,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"43116:139:31"},{"assignments":[7670],"declarations":[{"constant":false,"id":7670,"mutability":"mutable","name":"referenceName","nameLocation":"43280:13:31","nodeType":"VariableDeclaration","scope":7832,"src":"43266:27:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7669,"name":"string","nodeType":"ElementaryTypeName","src":"43266:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7673,"initialValue":{"expression":{"id":7671,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7639,"src":"43296:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"referenceName","nodeType":"MemberAccess","referencedDeclaration":5530,"src":"43296:21:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"43266:51:31"},{"assignments":[7675,7677],"declarations":[{"constant":false,"id":7675,"mutability":"mutable","name":"success","nameLocation":"43498:7:31","nodeType":"VariableDeclaration","scope":7832,"src":"43493:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7674,"name":"bool","nodeType":"ElementaryTypeName","src":"43493:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7677,"mutability":"mutable","name":"expectedAddressBytes","nameLocation":"43520:20:31","nodeType":"VariableDeclaration","scope":7832,"src":"43507:33:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7676,"name":"bytes","nodeType":"ElementaryTypeName","src":"43507:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7688,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":7682,"name":"ICreate3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9805,"src":"43593:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICreate3_$9805_$","typeString":"type(contract ICreate3)"}},"id":7683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":9795,"src":"43593:19:31","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$returns$_t_address_$","typeString":"function ICreate3.getAddress(bytes32) view returns (address)"}},{"components":[{"id":7684,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"43615:4:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"43614:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$returns$_t_address_$","typeString":"function ICreate3.getAddress(bytes32) view returns (address)"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7680,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43578:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"43578:14:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43578:43:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7678,"name":"create3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"43544:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"43544:20:31","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":7687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43544:87:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"43492:139:31"},{"condition":{"id":7690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"43646:8:31","subExpression":{"id":7689,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7675,"src":"43647:7:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7695,"nodeType":"IfStatement","src":"43642:66:31","trueBody":{"id":7694,"nodeType":"Block","src":"43656:52:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7691,"name":"FailedToGetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5836,"src":"43677:18:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43677:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7693,"nodeType":"RevertStatement","src":"43670:27:31"}]}},{"assignments":[7697],"declarations":[{"constant":false,"id":7697,"mutability":"mutable","name":"expectedAddress","nameLocation":"43726:15:31","nodeType":"VariableDeclaration","scope":7832,"src":"43718:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7696,"name":"address","nodeType":"ElementaryTypeName","src":"43718:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7705,"initialValue":{"arguments":[{"id":7700,"name":"expectedAddressBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7677,"src":"43755:20:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":7702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43778:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7701,"name":"address","nodeType":"ElementaryTypeName","src":"43778:7:31","typeDescriptions":{}}}],"id":7703,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"43777:9:31","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":7698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43744:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"43744:10:31","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43744:43:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"43718:69:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7706,"name":"expectedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7697,"src":"43862:15:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"43862:20:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"43862:27:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43892:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43862:31:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7830,"nodeType":"Block","src":"44379:1933:31","statements":[{"assignments":[7727,7729],"declarations":[{"constant":false,"id":7727,"mutability":"mutable","name":"deploySuccess","nameLocation":"44565:13:31","nodeType":"VariableDeclaration","scope":7830,"src":"44560:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7726,"name":"bool","nodeType":"ElementaryTypeName","src":"44560:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7729,"mutability":"mutable","name":"actualAddressBytes","nameLocation":"44593:18:31","nodeType":"VariableDeclaration","scope":7830,"src":"44580:31:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7728,"name":"bytes","nodeType":"ElementaryTypeName","src":"44580:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7742,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":7734,"name":"ICreate3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9805,"src":"44668:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICreate3_$9805_$","typeString":"type(contract ICreate3)"}},"id":7735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":9788,"src":"44668:15:31","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function ICreate3.deploy(bytes32,bytes memory,uint256) returns (address)"}},{"components":[{"id":7736,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"44686:4:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7737,"name":"creationCodeWithConstructorArgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"44692:31:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":7738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44725:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44685:42:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes_memory_ptr_$_t_rational_0_by_1_$","typeString":"tuple(bytes32,bytes memory,int_const 0)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function ICreate3.deploy(bytes32,bytes memory,uint256) returns (address)"},{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes_memory_ptr_$_t_rational_0_by_1_$","typeString":"tuple(bytes32,bytes memory,int_const 0)"}],"expression":{"id":7732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44653:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"44653:14:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44653:75:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7730,"name":"create3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"44615:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"44615:20:31","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":7741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44615:127:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"44559:183:31"},{"expression":{"arguments":[{"id":7744,"name":"deploySuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"44765:13:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"4661696c656420746f206465706c6f793a20","id":7748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44794:20:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_915f5799182efa058318d2c10bfb6fdf3b367d7d83d124821938a981793f77b4","typeString":"literal_string \"Failed to deploy: \""},"value":"Failed to deploy: "},{"id":7749,"name":"referenceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"44816:13:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_915f5799182efa058318d2c10bfb6fdf3b367d7d83d124821938a981793f77b4","typeString":"literal_string \"Failed to deploy: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44780:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7745,"name":"string","nodeType":"ElementaryTypeName","src":"44780:6:31","typeDescriptions":{}}},"id":7747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"concat","nodeType":"MemberAccess","src":"44780:13:31","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":7750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44780:50:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7743,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"44757:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44757:74:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7752,"nodeType":"ExpressionStatement","src":"44757:74:31"},{"assignments":[7754],"declarations":[{"constant":false,"id":7754,"mutability":"mutable","name":"actualAddress","nameLocation":"44854:13:31","nodeType":"VariableDeclaration","scope":7830,"src":"44846:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7753,"name":"address","nodeType":"ElementaryTypeName","src":"44846:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7762,"initialValue":{"arguments":[{"id":7757,"name":"actualAddressBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7729,"src":"44881:18:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":7759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44902:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7758,"name":"address","nodeType":"ElementaryTypeName","src":"44902:7:31","typeDescriptions":{}}}],"id":7760,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"44901:9:31","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":7755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44870:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"44870:10:31","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44870:41:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"44846:65:31"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7763,"name":"expectedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7697,"src":"44930:15:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7764,"name":"actualAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7754,"src":"44949:13:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"44930:32:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7828,"nodeType":"Block","src":"45407:895:31","statements":[{"expression":{"id":7790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7785,"name":"executorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"45736:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7788,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7786,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"45749:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45749:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"45736:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":7789,"name":"ownerBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"45766:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45736:45:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7791,"nodeType":"ExpressionStatement","src":"45736:45:31"},{"expression":{"id":7794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7792,"name":"totalExecutorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"45799:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":7793,"name":"ownerBondAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"45820:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45799:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7795,"nodeType":"ExpressionStatement","src":"45799:36:31"},{"eventCall":{"arguments":[{"id":7797,"name":"referenceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"45897:13:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7798,"name":"expectedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7697,"src":"45932:15:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7799,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"45969:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7800,"name":"referenceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"46009:13:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7801,"name":"_actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7641,"src":"46044:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7796,"name":"DeploymentFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8182,"src":"45859:16:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,address,bytes32,string memory,uint256)"}},"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45859:215:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7803,"nodeType":"EmitStatement","src":"45854:220:31"},{"expression":{"arguments":[{"hexValue":"4465706c6f796d656e744661696c6564","id":7807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46118:18:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_9afe9cdeb756775707de62673d317969c43f7e6c567311540f9d56f8170bd124","typeString":"literal_string \"DeploymentFailed\""},"value":"DeploymentFailed"},{"arguments":[{"id":7810,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"46155:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46138:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"46138:16:31","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46138:36:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9afe9cdeb756775707de62673d317969c43f7e6c567311540f9d56f8170bd124","typeString":"literal_string \"DeploymentFailed\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7804,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"46092:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announceWithData","nodeType":"MemberAccess","referencedDeclaration":9766,"src":"46092:25:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) external"}},"id":7812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46092:83:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7813,"nodeType":"ExpressionStatement","src":"46092:83:31"},{"expression":{"id":7819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7814,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"46194:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":7817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46223:1:31","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":7816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"46215:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7815,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46215:7:31","typeDescriptions":{}}},"id":7818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46215:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"46194:31:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7820,"nodeType":"ExpressionStatement","src":"46194:31:31"},{"expression":{"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7821,"name":"_deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7636,"src":"46243:11:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"46243:18:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":7824,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"46264:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":7825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"FAILED","nodeType":"MemberAccess","referencedDeclaration":5552,"src":"46264:23:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"46243:44:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"id":7827,"nodeType":"ExpressionStatement","src":"46243:44:31"}]},"id":7829,"nodeType":"IfStatement","src":"44926:1376:31","trueBody":{"id":7784,"nodeType":"Block","src":"44964:437:31","statements":[{"eventCall":{"arguments":[{"id":7767,"name":"referenceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"45080:13:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7768,"name":"actualAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7754,"src":"45115:13:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7769,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"45150:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7770,"name":"referenceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"45190:13:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":7771,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7639,"src":"45225:7:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction memory"}},"id":7772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"contractKindHash","nodeType":"MemberAccess","referencedDeclaration":5528,"src":"45225:24:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":7774,"name":"creationCodeWithConstructorArgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"45281:31:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7773,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"45271:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45271:42:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7766,"name":"ContractDeployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"45042:16:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (string memory,address,bytes32,string memory,bytes32,bytes32)"}},"id":7776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45042:289:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7777,"nodeType":"EmitStatement","src":"45037:294:31"},{"expression":{"arguments":[{"hexValue":"436f6e74726163744465706c6f796564","id":7781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45367:18:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe6b160f10156dea0639bec90696772c640b9706a47f5b8c52ea1abe5858b34d","typeString":"literal_string \"ContractDeployed\""},"value":"ContractDeployed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fe6b160f10156dea0639bec90696772c640b9706a47f5b8c52ea1abe5858b34d","typeString":"literal_string \"ContractDeployed\""}],"expression":{"id":7778,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"45349:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"45349:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":7782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45349:37:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7783,"nodeType":"ExpressionStatement","src":"45349:37:31"}]}}]},"id":7831,"nodeType":"IfStatement","src":"43858:2454:31","trueBody":{"id":7725,"nodeType":"Block","src":"43895:478:31","statements":[{"eventCall":{"arguments":[{"id":7712,"name":"referenceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"44145:13:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7713,"name":"expectedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7697,"src":"44176:15:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7714,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"44209:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7715,"name":"referenceName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"44245:13:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7716,"name":"_actionIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7641,"src":"44276:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7711,"name":"ContractDeploymentSkipped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"44102:25:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,address,bytes32,string memory,uint256)"}},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44102:200:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7718,"nodeType":"EmitStatement","src":"44097:205:31"},{"expression":{"arguments":[{"hexValue":"436f6e74726163744465706c6f796d656e74536b6970706564","id":7722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44334:27:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_783c9b0a62816cbd0221d408937b53d36e126872b05695b8f346aff9b3316ad0","typeString":"literal_string \"ContractDeploymentSkipped\""},"value":"ContractDeploymentSkipped"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_783c9b0a62816cbd0221d408937b53d36e126872b05695b8f346aff9b3316ad0","typeString":"literal_string \"ContractDeploymentSkipped\""}],"expression":{"id":7719,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"44316:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"44316:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":7723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44316:46:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7724,"nodeType":"ExpressionStatement","src":"44316:46:31"}]}}]},"documentation":{"id":7633,"nodeType":"StructuredDocumentation","src":"42236:575:31","text":" @notice Attempts to deploy a non-proxy contract. The deployment will be skipped if a contract\n already exists at the Create3 address. The entire deployment will be cancelled if the\ncontract fails to be deployed, which should only occur if its constructor reverts.\n @param _deployment The current deployment state struct. The data location is \"storage\"\nbecause we\n may modify one of the struct's fields.\n @param _action The `DEPLOY_CONTRACT` action to execute.\n @param _actionIndex The index of the action."},"id":7833,"implemented":true,"kind":"function","modifiers":[],"name":"_attemptContractDeployment","nameLocation":"42825:26:31","nodeType":"FunctionDefinition","parameters":{"id":7642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7636,"mutability":"mutable","name":"_deployment","nameLocation":"42885:11:31","nodeType":"VariableDeclaration","scope":7833,"src":"42861:35:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":7635,"nodeType":"UserDefinedTypeName","pathNode":{"id":7634,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"42861:15:31"},"referencedDeclaration":5519,"src":"42861:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"},{"constant":false,"id":7639,"mutability":"mutable","name":"_action","nameLocation":"42933:7:31","nodeType":"VariableDeclaration","scope":7833,"src":"42906:34:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_memory_ptr","typeString":"struct RawChugSplashAction"},"typeName":{"id":7638,"nodeType":"UserDefinedTypeName","pathNode":{"id":7637,"name":"RawChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"42906:19:31"},"referencedDeclaration":5531,"src":"42906:19:31","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"}},"visibility":"internal"},{"constant":false,"id":7641,"mutability":"mutable","name":"_actionIndex","nameLocation":"42958:12:31","nodeType":"VariableDeclaration","scope":7833,"src":"42950:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7640,"name":"uint256","nodeType":"ElementaryTypeName","src":"42950:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42851:125:31"},"returnParameters":{"id":7643,"nodeType":"ParameterList","parameters":[],"src":"42986:0:31"},"scope":8014,"src":"42816:3502:31","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7866,"nodeType":"Block","src":"46631:245:31","statements":[{"expression":{"id":7845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7840,"name":"_deployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7837,"src":"46641:11:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState storage pointer"}},"id":7842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"status","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"46641:18:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":7843,"name":"DeploymentStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5553,"src":"46662:16:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DeploymentStatus_$5553_$","typeString":"type(enum DeploymentStatus)"}},"id":7844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"COMPLETED","nodeType":"MemberAccess","referencedDeclaration":5550,"src":"46662:26:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"src":"46641:47:31","typeDescriptions":{"typeIdentifier":"t_enum$_DeploymentStatus_$5553","typeString":"enum DeploymentStatus"}},"id":7846,"nodeType":"ExpressionStatement","src":"46641:47:31"},{"eventCall":{"arguments":[{"id":7848,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"46734:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7849,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"46754:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46754:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7847,"name":"ChugSplashDeploymentCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"46704:29:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46704:63:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7852,"nodeType":"EmitStatement","src":"46699:68:31"},{"expression":{"arguments":[{"hexValue":"4368756753706c6173684465706c6f796d656e74436f6d706c65746564","id":7856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46795:31:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_37cae0cf32405bbfdf4f8fb6e6b008eb2386d070de2c97bafbe38290df158ef1","typeString":"literal_string \"ChugSplashDeploymentCompleted\""},"value":"ChugSplashDeploymentCompleted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37cae0cf32405bbfdf4f8fb6e6b008eb2386d070de2c97bafbe38290df158ef1","typeString":"literal_string \"ChugSplashDeploymentCompleted\""}],"expression":{"id":7853,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5686,"src":"46777:8:31","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"id":7855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"announce","nodeType":"MemberAccess","referencedDeclaration":9759,"src":"46777:17:31","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":7857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46777:50:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7858,"nodeType":"ExpressionStatement","src":"46777:50:31"},{"expression":{"id":7864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7859,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"46838:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":7862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46867:1:31","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":7861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"46859:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46859:7:31","typeDescriptions":{}}},"id":7863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46859:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"46838:31:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7865,"nodeType":"ExpressionStatement","src":"46838:31:31"}]},"documentation":{"id":7834,"nodeType":"StructuredDocumentation","src":"46324:227:31","text":" @notice Mark the deployment as completed and reset the active deployment ID.\n @param _deployment The current deployment state struct. The data location is \"s  rage\"\nbecause we modify the struct."},"id":7867,"implemented":true,"kind":"function","modifiers":[],"name":"_completeDeployment","nameLocation":"46565:19:31","nodeType":"FunctionDefinition","parameters":{"id":7838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7837,"mutability":"mutable","name":"_deployment","nameLocation":"46609:11:31","nodeType":"VariableDeclaration","scope":7867,"src":"46585:35:31","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"},"typeName":{"id":7836,"nodeType":"UserDefinedTypeName","pathNode":{"id":7835,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"46585:15:31"},"referencedDeclaration":5519,"src":"46585:15:31","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"src":"46584:37:31"},"returnParameters":{"id":7839,"nodeType":"ParameterList","parameters":[],"src":"46631:0:31"},"scope":8014,"src":"46556:320:31","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7946,"nodeType":"Block","src":"47355:1594:31","statements":[{"condition":{"id":7876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"47369:17:31","subExpression":{"id":7875,"name":"_remoteExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"47370:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7879,"nodeType":"IfStatement","src":"47365:54:31","trueBody":{"id":7878,"nodeType":"Block","src":"47388:31:31","statements":[{"functionReturnParameters":7874,"id":7877,"nodeType":"Return","src":"47402:7:31"}]}},{"assignments":[7881],"declarations":[{"constant":false,"id":7881,"mutability":"mutable","name":"gasPrice","nameLocation":"47437:8:31","nodeType":"VariableDeclaration","scope":7946,"src":"47429:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7880,"name":"uint256","nodeType":"ElementaryTypeName","src":"47429:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7885,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7882,"name":"gasPriceCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5693,"src":"47448:18:31","typeDescriptions":{"typeIdentifier":"t_contract$_IGasPriceCalculator_$9833","typeString":"contract IGasPriceCalculator"}},"id":7883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getGasPrice","nodeType":"MemberAccess","referencedDeclaration":9832,"src":"47448:30:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":7884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47448:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47429:51:31"},{"assignments":[7887],"declarations":[{"constant":false,"id":7887,"mutability":"mutable","name":"calldataGasUsed","nameLocation":"47814:15:31","nodeType":"VariableDeclaration","scope":7946,"src":"47806:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7886,"name":"uint256","nodeType":"ElementaryTypeName","src":"47806:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7893,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7888,"name":"_msgData","nodeType":"Identifier","overloadedDeclarations":[8013],"referencedDeclaration":8013,"src":"47832:8:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_calldata_ptr_$","typeString":"function () view returns (bytes calldata)"}},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"47832:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":7890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"47832:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":7891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47852:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"47832:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47806:48:31"},{"assignments":[7895],"declarations":[{"constant":false,"id":7895,"mutability":"mutable","name":"estGasUsed","nameLocation":"48408:10:31","nodeType":"VariableDeclaration","scope":7946,"src":"48400:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7894,"name":"uint256","nodeType":"ElementaryTypeName","src":"48400:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7904,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130305f303030","id":7896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48421:7:31","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7897,"name":"calldataGasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7887,"src":"48431:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48421:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7899,"name":"_initialGasLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"48449:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48421:43:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7901,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"48467:7:31","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":7902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48467:9:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48421:55:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"48400:76:31"},{"assignments":[7906],"declarations":[{"constant":false,"id":7906,"mutability":"mutable","name":"executorPayment","nameLocation":"48495:15:31","nodeType":"VariableDeclaration","scope":7946,"src":"48487:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7905,"name":"uint256","nodeType":"ElementaryTypeName","src":"48487:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7918,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7907,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7881,"src":"48514:8:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7908,"name":"estGasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"48525:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48514:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":7910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48539:3:31","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7911,"name":"executorPaymentPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5706,"src":"48545:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48539:31:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7913,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48538:33:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48514:57:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48513:59:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":7916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48575:3:31","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"48513:65:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"48487:91:31"},{"assignments":[7920],"declarations":[{"constant":false,"id":7920,"mutability":"mutable","name":"protocolPayment","nameLocation":"48596:15:31","nodeType":"VariableDeclaration","scope":7946,"src":"48588:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7919,"name":"uint256","nodeType":"ElementaryTypeName","src":"48588:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7921,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7881,"src":"48615:8:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7922,"name":"estGasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"48626:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48615:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"id":7924,"name":"protocolPaymentPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"48640:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7925,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48639:27:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48615:51:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48614:53:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":7928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48670:3:31","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"48614:59:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"48588:85:31"},{"expression":{"id":7933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7931,"name":"totalExecutorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"48744:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":7932,"name":"executorPayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7906,"src":"48765:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48744:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7934,"nodeType":"ExpressionStatement","src":"48744:36:31"},{"expression":{"id":7940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7935,"name":"executorDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"48790:12:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7938,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7936,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"48803:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"48803:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"48790:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":7939,"name":"executorPayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7906,"src":"48820:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48790:45:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7941,"nodeType":"ExpressionStatement","src":"48790:45:31"},{"expression":{"id":7944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7942,"name":"totalProtocolDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"48906:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":7943,"name":"protocolPayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7920,"src":"48927:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48906:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7945,"nodeType":"ExpressionStatement","src":"48906:36:31"}]},"documentation":{"id":7868,"nodeType":"StructuredDocumentation","src":"46882:378:31","text":" @notice Pay the executor and protocol creator based on the transaction's gas price and the\ngas used. Note that no payment occurs for self-executed deployments.\n @param _initialGasLeft Gas left at the beginning of this transaction.\n @param _remoteExecution True if the deployment is being executed remotely, otherwise\nfalse."},"id":7947,"implemented":true,"kind":"function","modifiers":[],"name":"_payExecutorAndProtocol","nameLocation":"47274:23:31","nodeType":"FunctionDefinition","parameters":{"id":7873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7870,"mutability":"mutable","name":"_initialGasLeft","nameLocation":"47306:15:31","nodeType":"VariableDeclaration","scope":7947,"src":"47298:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7869,"name":"uint256","nodeType":"ElementaryTypeName","src":"47298:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7872,"mutability":"mutable","name":"_remoteExecution","nameLocation":"47328:16:31","nodeType":"VariableDeclaration","scope":7947,"src":"47323:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7871,"name":"bool","nodeType":"ElementaryTypeName","src":"47323:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47297:48:31"},"returnParameters":{"id":7874,"nodeType":"ParameterList","parameters":[],"src":"47355:0:31"},"scope":8014,"src":"47265:1684:31","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7982,"nodeType":"Block","src":"49426:280:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7953,"name":"_remoteExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"49440:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":7954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"49460:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"49440:24:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7957,"name":"activeDeploymentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"49488:18:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7956,"name":"getSelectedExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7534,"src":"49468:19:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":7958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49468:39:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7959,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"49511:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49511:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49468:55:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"49440:83:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7967,"name":"_remoteExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7950,"src":"49596:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":7968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"49616:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"49596:25:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7970,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1006,"src":"49625:5:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49625:7:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7972,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[7999],"referencedDeclaration":7999,"src":"49636:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49636:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49625:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"49596:52:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7980,"nodeType":"IfStatement","src":"49592:108:31","trueBody":{"id":7979,"nodeType":"Block","src":"49650:50:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7976,"name":"CallerIsNotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"49671:16:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49671:18:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7978,"nodeType":"RevertStatement","src":"49664:25:31"}]}},"id":7981,"nodeType":"IfStatement","src":"49436:264:31","trueBody":{"id":7966,"nodeType":"Block","src":"49525:61:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7963,"name":"CallerIsNotSelectedExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5830,"src":"49546:27:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49546:29:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7965,"nodeType":"RevertStatement","src":"49539:36:31"}]}}]},"documentation":{"id":7948,"nodeType":"StructuredDocumentation","src":"48955:381:31","text":" @notice If the deployment is being executed remotely, this function will check that the\n caller is the selected executor. If the deployment is being executed locally, this function\n will check that the caller is the owner. Throws an error otherwise.\n@param _remoteExecution True if the deployment is being executed remotely, otherwise false."},"id":7983,"implemented":true,"kind":"function","modifiers":[],"name":"_assertCallerIsOwnerOrSelectedExecutor","nameLocation":"49350:38:31","nodeType":"FunctionDefinition","parameters":{"id":7951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7950,"mutability":"mutable","name":"_remoteExecution","nameLocation":"49394:16:31","nodeType":"VariableDeclaration","scope":7983,"src":"49389:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7949,"name":"bool","nodeType":"ElementaryTypeName","src":"49389:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49388:23:31"},"returnParameters":{"id":7952,"nodeType":"ParameterList","parameters":[],"src":"49426:0:31"},"scope":8014,"src":"49341:365:31","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[1137,1780],"body":{"id":7998,"nodeType":"Block","src":"49975:64:31","statements":[{"expression":{"id":7996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7992,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7990,"src":"49985:6:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7993,"name":"ERC2771ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"49994:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC2771ContextUpgradeable_$1170_$","typeString":"type(contract ERC2771ContextUpgradeable)"}},"id":7994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_msgSender","nodeType":"MemberAccess","referencedDeclaration":1137,"src":"49994:36:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"49994:38:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49985:47:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7997,"nodeType":"ExpressionStatement","src":"49985:47:31"}]},"documentation":{"id":7984,"nodeType":"StructuredDocumentation","src":"49712:105:31","text":" @notice Use the ERC2771Recipient implementation to get the sender of the current call."},"id":7999,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"49831:10:31","nodeType":"FunctionDefinition","overrides":{"id":7988,"nodeType":"OverrideSpecifier","overrides":[{"id":7986,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1795,"src":"49891:18:31"},{"id":7987,"name":"ERC2771ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1170,"src":"49911:25:31"}],"src":"49882:55:31"},"parameters":{"id":7985,"nodeType":"ParameterList","parameters":[],"src":"49841:2:31"},"returnParameters":{"id":7991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7990,"mutability":"mutable","name":"sender","nameLocation":"49963:6:31","nodeType":"VariableDeclaration","scope":7999,"src":"49955:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7989,"name":"address","nodeType":"ElementaryTypeName","src":"49955:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49954:16:31"},"scope":8014,"src":"49822:217:31","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[1164,1789],"body":{"id":8012,"nodeType":"Block","src":"50304:60:31","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8008,"name":"ERC2771ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"50321:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC2771ContextUpgradeable_$1170_$","typeString":"type(contract ERC2771ContextUpgradeable)"}},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_msgData","nodeType":"MemberAccess","referencedDeclaration":1164,"src":"50321:34:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_calldata_ptr_$","typeString":"function () view returns (bytes calldata)"}},"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"50321:36:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":8007,"id":8011,"nodeType":"Return","src":"50314:43:31"}]},"documentation":{"id":8000,"nodeType":"StructuredDocumentation","src":"50045:103:31","text":" @notice Use the ERC2771Recipient implementation to get the data of the current call."},"id":8013,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"50162:8:31","nodeType":"FunctionDefinition","overrides":{"id":8004,"nodeType":"OverrideSpecifier","overrides":[{"id":8002,"name":"ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1795,"src":"50220:18:31"},{"id":8003,"name":"ERC2771ContextUpgradeable","nodeType":"IdentifierPath","referencedDeclaration":1170,"src":"50240:25:31"}],"src":"50211:55:31"},"parameters":{"id":8001,"nodeType":"ParameterList","parameters":[],"src":"50170:2:31"},"returnParameters":{"id":8007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8013,"src":"50284:14:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8005,"name":"bytes","nodeType":"ElementaryTypeName","src":"50284:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"50283:16:31"},"scope":8014,"src":"50153:211:31","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":8015,"src":"2320:48046:31","usedErrors":[5743,5746,5749,5752,5755,5758,5761,5764,5767,5770,5773,5776,5779,5782,5785,5788,5791,5794,5797,5800,5803,5806,5809,5812,5815,5818,5821,5824,5827,5830,5833,5836]}],"src":"32:50335:31"},"id":31},"contracts/ChugSplashManagerEvents.sol":{"ast":{"absolutePath":"contracts/ChugSplashManagerEvents.sol","exportedSymbols":{"ChugSplashManagerEvents":[8183]},"id":8184,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8016,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:32"},{"abstract":false,"baseContracts":[],"canonicalName":"ChugSplashManagerEvents","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8183,"linearizedBaseContracts":[8183],"name":"ChugSplashManagerEvents","nameLocation":"66:23:32","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8017,"nodeType":"StructuredDocumentation","src":"96:804:32","text":" @notice Emitted when a deployment is proposed.\n @param deploymentId   ID of the deployment that was proposed.\n @param actionRoot   Root of the Merkle tree containing the actions for the deployment.\n @param targetRoot   Root of the Merkle tree containing the targets for the deployment.\n @param numActions   Number of actions in the deployment.\n @param numTargets   Number of targets in the deployment.\n @param numImmutableContracts   Number of non-proxy contracts in the deployment.\n @param configUri  URI of the config file that can be used to fetch the deployment.\n @param remoteExecution Boolean indicating if the deployment should be remotely executed.\n @param proposer     Address of the account that proposed the deployment."},"eventSelector":"2efcc05790a2408b85fd4ac0d2eb6ff0b3a28c02913b5772b38206eeaf7e1aaa","id":8037,"name":"ChugSplashDeploymentProposed","nameLocation":"911:28:32","nodeType":"EventDefinition","parameters":{"id":8036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8019,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"965:12:32","nodeType":"VariableDeclaration","scope":8037,"src":"949:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"949:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8021,"indexed":false,"mutability":"mutable","name":"actionRoot","nameLocation":"995:10:32","nodeType":"VariableDeclaration","scope":8037,"src":"987:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"987:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8023,"indexed":false,"mutability":"mutable","name":"targetRoot","nameLocation":"1023:10:32","nodeType":"VariableDeclaration","scope":8037,"src":"1015:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1015:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8025,"indexed":false,"mutability":"mutable","name":"numActions","nameLocation":"1051:10:32","nodeType":"VariableDeclaration","scope":8037,"src":"1043:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1043:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8027,"indexed":false,"mutability":"mutable","name":"numTargets","nameLocation":"1079:10:32","nodeType":"VariableDeclaration","scope":8037,"src":"1071:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8026,"name":"uint256","nodeType":"ElementaryTypeName","src":"1071:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8029,"indexed":false,"mutability":"mutable","name":"numImmutableContracts","nameLocation":"1107:21:32","nodeType":"VariableDeclaration","scope":8037,"src":"1099:29:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8028,"name":"uint256","nodeType":"ElementaryTypeName","src":"1099:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8031,"indexed":false,"mutability":"mutable","name":"configUri","nameLocation":"1145:9:32","nodeType":"VariableDeclaration","scope":8037,"src":"1138:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8030,"name":"string","nodeType":"ElementaryTypeName","src":"1138:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8033,"indexed":false,"mutability":"mutable","name":"remoteExecution","nameLocation":"1169:15:32","nodeType":"VariableDeclaration","scope":8037,"src":"1164:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8032,"name":"bool","nodeType":"ElementaryTypeName","src":"1164:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8035,"indexed":false,"mutability":"mutable","name":"proposer","nameLocation":"1202:8:32","nodeType":"VariableDeclaration","scope":8037,"src":"1194:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8034,"name":"address","nodeType":"ElementaryTypeName","src":"1194:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:277:32"},"src":"905:312:32"},{"anonymous":false,"documentation":{"id":8038,"nodeType":"StructuredDocumentation","src":"1223:150:32","text":" @notice Emitted when a ChugSplash deployment is approved.\n @param deploymentId ID of the deployment that was approved."},"eventSelector":"78f2b31e40dca1f52e437b553603e30b4916085657201b5792894208d3e918c1","id":8042,"name":"ChugSplashDeploymentApproved","nameLocation":"1384:28:32","nodeType":"EventDefinition","parameters":{"id":8041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8040,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"1429:12:32","nodeType":"VariableDeclaration","scope":8042,"src":"1413:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1413:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1412:30:32"},"src":"1378:65:32"},{"anonymous":false,"documentation":{"id":8043,"nodeType":"StructuredDocumentation","src":"1449:299:32","text":" @notice Emitted when a storage slot in a proxy is modified.\n @param deploymentId Current deployment ID.\n @param proxy        Address of the proxy.\n @param executor Address of the caller for this transaction.\n @param actionIndex Index of this action."},"eventSelector":"572ca77d05d5995d2382e9e3b5f4819a396a2b7914dd3cb9a81070b9dbe1e2f5","id":8053,"name":"SetProxyStorage","nameLocation":"1759:15:32","nodeType":"EventDefinition","parameters":{"id":8052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8045,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"1800:12:32","nodeType":"VariableDeclaration","scope":8053,"src":"1784:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1784:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8047,"indexed":true,"mutability":"mutable","name":"proxy","nameLocation":"1838:5:32","nodeType":"VariableDeclaration","scope":8053,"src":"1822:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8046,"name":"address","nodeType":"ElementaryTypeName","src":"1822:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8049,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"1869:8:32","nodeType":"VariableDeclaration","scope":8053,"src":"1853:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8048,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8051,"indexed":false,"mutability":"mutable","name":"actionIndex","nameLocation":"1895:11:32","nodeType":"VariableDeclaration","scope":8053,"src":"1887:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8050,"name":"uint256","nodeType":"ElementaryTypeName","src":"1887:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1774:138:32"},"src":"1753:160:32"},{"anonymous":false,"documentation":{"id":8054,"nodeType":"StructuredDocumentation","src":"1919:214:32","text":" @notice Emitted when a deployment is initiated.\n @param deploymentId   ID of the active deployment.\n @param executor        Address of the caller that initiated the deployment."},"eventSelector":"bfea78bd2c6eb373d1bf039c60bc8b42be83b67fb39c2a2bc60b18d5883897d9","id":8060,"name":"ProxiesInitiated","nameLocation":"2144:16:32","nodeType":"EventDefinition","parameters":{"id":8059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8056,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"2177:12:32","nodeType":"VariableDeclaration","scope":8060,"src":"2161:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2161:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8058,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"2207:8:32","nodeType":"VariableDeclaration","scope":8060,"src":"2191:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8057,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2160:56:32"},"src":"2138:79:32"},{"anonymous":false,"eventSelector":"7e1bc64dc0005c076de7c8597ca19cde8e68d0d0a28a32d75bc7934cffdafe88","id":8070,"name":"ProxyUpgraded","nameLocation":"2229:13:32","nodeType":"EventDefinition","parameters":{"id":8069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8062,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"2268:12:32","nodeType":"VariableDeclaration","scope":8070,"src":"2252:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2252:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8064,"indexed":true,"mutability":"mutable","name":"proxy","nameLocation":"2306:5:32","nodeType":"VariableDeclaration","scope":8070,"src":"2290:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8063,"name":"address","nodeType":"ElementaryTypeName","src":"2290:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8066,"indexed":false,"mutability":"mutable","name":"projectName","nameLocation":"2328:11:32","nodeType":"VariableDeclaration","scope":8070,"src":"2321:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8065,"name":"string","nodeType":"ElementaryTypeName","src":"2321:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8068,"indexed":false,"mutability":"mutable","name":"referenceName","nameLocation":"2356:13:32","nodeType":"VariableDeclaration","scope":8070,"src":"2349:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8067,"name":"string","nodeType":"ElementaryTypeName","src":"2349:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2242:133:32"},"src":"2223:153:32"},{"anonymous":false,"documentation":{"id":8071,"nodeType":"StructuredDocumentation","src":"2382:214:32","text":" @notice Emitted when a deployment is completed.\n @param deploymentId   ID of the active deployment.\n @param executor        Address of the caller that initiated the deployment."},"eventSelector":"745f3f165a11892e95c826e15a0e3f1edebd0c600775d4e34e41d08f0c73ecf2","id":8077,"name":"ChugSplashDeploymentCompleted","nameLocation":"2607:29:32","nodeType":"EventDefinition","parameters":{"id":8076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8073,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"2653:12:32","nodeType":"VariableDeclaration","scope":8077,"src":"2637:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8072,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2637:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8075,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"2683:8:32","nodeType":"VariableDeclaration","scope":8077,"src":"2667:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8074,"name":"address","nodeType":"ElementaryTypeName","src":"2667:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2636:56:32"},"src":"2601:92:32"},{"anonymous":false,"documentation":{"id":8078,"nodeType":"StructuredDocumentation","src":"2699:338:32","text":" @notice Emitted when the owner of this contract cancels an active deployment.\n @param deploymentId        Deployment ID that was cancelled.\n @param owner           Address of the owner that cancelled the deployment.\n @param actionsExecuted Total number of completed actions before cancellation."},"eventSelector":"6e376540abc69ea2aba618baf9970a40a410209797848ac685c0d5e321536c96","id":8086,"name":"ChugSplashDeploymentCancelled","nameLocation":"3048:29:32","nodeType":"EventDefinition","parameters":{"id":8085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8080,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"3103:12:32","nodeType":"VariableDeclaration","scope":8086,"src":"3087:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8082,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3141:5:32","nodeType":"VariableDeclaration","scope":8086,"src":"3125:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8081,"name":"address","nodeType":"ElementaryTypeName","src":"3125:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8084,"indexed":false,"mutability":"mutable","name":"actionsExecuted","nameLocation":"3164:15:32","nodeType":"VariableDeclaration","scope":8086,"src":"3156:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8083,"name":"uint256","nodeType":"ElementaryTypeName","src":"3156:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3077:108:32"},"src":"3042:144:32"},{"anonymous":false,"documentation":{"id":8087,"nodeType":"StructuredDocumentation","src":"3192:345:32","text":" @notice Emitted when ownership of a proxy is transferred away from this contract.\n @param proxy            Address of the proxy that was exported.\n @param contractKindHash The proxy's contract kind hash, which indicates the proxy's type.\n @param newOwner         Address of the new owner of the proxy."},"eventSelector":"6828050ff1390d9c84304db69d7669bdc13a1df9715cedf6fe1eeb0bec3843ea","id":8095,"name":"ProxyExported","nameLocation":"3548:13:32","nodeType":"EventDefinition","parameters":{"id":8094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8089,"indexed":true,"mutability":"mutable","name":"proxy","nameLocation":"3578:5:32","nodeType":"VariableDeclaration","scope":8095,"src":"3562:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8088,"name":"address","nodeType":"ElementaryTypeName","src":"3562:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8091,"indexed":true,"mutability":"mutable","name":"contractKindHash","nameLocation":"3601:16:32","nodeType":"VariableDeclaration","scope":8095,"src":"3585:32:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3585:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8093,"indexed":false,"mutability":"mutable","name":"newOwner","nameLocation":"3627:8:32","nodeType":"VariableDeclaration","scope":8095,"src":"3619:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8092,"name":"address","nodeType":"ElementaryTypeName","src":"3619:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3561:75:32"},"src":"3542:95:32"},{"anonymous":false,"documentation":{"id":8096,"nodeType":"StructuredDocumentation","src":"3643:234:32","text":" @notice Emitted when a deployment is claimed by a remote executor.\n @param deploymentId ID of the deployment that was claimed.\n @param executor Address of the executor that claimed the deployment."},"eventSelector":"def501073bf641ebc9528324e0366c9737f17823fa009980717ec55df3b05f20","id":8102,"name":"ChugSplashDeploymentClaimed","nameLocation":"3888:27:32","nodeType":"EventDefinition","parameters":{"id":8101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8098,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"3932:12:32","nodeType":"VariableDeclaration","scope":8102,"src":"3916:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3916:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8100,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"3962:8:32","nodeType":"VariableDeclaration","scope":8102,"src":"3946:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8099,"name":"address","nodeType":"ElementaryTypeName","src":"3946:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3915:56:32"},"src":"3882:90:32"},{"anonymous":false,"documentation":{"id":8103,"nodeType":"StructuredDocumentation","src":"3978:257:32","text":" @notice Emitted when an executor claims a payment.\n @param executor The executor being paid.\n @param withdrawn   Amount of ETH withdrawn.\n @param remaining  Amount of ETH remaining to be withdrawn by the executor."},"eventSelector":"ba98915499c19898a23f510deeaa915637d1b5d537df51dc105d01b8e69be7e2","id":8111,"name":"ExecutorPaymentClaimed","nameLocation":"4246:22:32","nodeType":"EventDefinition","parameters":{"id":8110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8105,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"4285:8:32","nodeType":"VariableDeclaration","scope":8111,"src":"4269:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8104,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8107,"indexed":false,"mutability":"mutable","name":"withdrawn","nameLocation":"4303:9:32","nodeType":"VariableDeclaration","scope":8111,"src":"4295:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8106,"name":"uint256","nodeType":"ElementaryTypeName","src":"4295:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8109,"indexed":false,"mutability":"mutable","name":"remaining","nameLocation":"4322:9:32","nodeType":"VariableDeclaration","scope":8111,"src":"4314:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8108,"name":"uint256","nodeType":"ElementaryTypeName","src":"4314:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4268:64:32"},"src":"4240:93:32"},{"anonymous":false,"documentation":{"id":8112,"nodeType":"StructuredDocumentation","src":"4339:176:32","text":" @notice Emitted when the owner withdraws ETH from this contract.\n @param owner  Address of the owner.\n @param amount ETH amount withdrawn."},"eventSelector":"889d16c2f05ed249633dadc4c5c2aa8eeb677384800475aaf313cad7707e9e19","id":8118,"name":"OwnerWithdrewETH","nameLocation":"4526:16:32","nodeType":"EventDefinition","parameters":{"id":8117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8114,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"4559:5:32","nodeType":"VariableDeclaration","scope":8118,"src":"4543:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8113,"name":"address","nodeType":"ElementaryTypeName","src":"4543:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8116,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4574:6:32","nodeType":"VariableDeclaration","scope":8118,"src":"4566:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4542:39:32"},"src":"4520:62:32"},{"anonymous":false,"documentation":{"id":8119,"nodeType":"StructuredDocumentation","src":"4588:299:32","text":" @notice Emitted when the owner of this contract adds or removes a proposer.\n @param proposer Address of the proposer that was added or removed.\n @param isProposer Boolean indicating if the proposer was added or removed.\n @param owner Address of the owner."},"eventSelector":"0b9a24ac05b182ed15b84d4b2c08ef4a709487d65220beebcb8190410fff5a84","id":8127,"name":"ProposerSet","nameLocation":"4898:11:32","nodeType":"EventDefinition","parameters":{"id":8126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8121,"indexed":true,"mutability":"mutable","name":"proposer","nameLocation":"4926:8:32","nodeType":"VariableDeclaration","scope":8127,"src":"4910:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8120,"name":"address","nodeType":"ElementaryTypeName","src":"4910:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8123,"indexed":true,"mutability":"mutable","name":"isProposer","nameLocation":"4949:10:32","nodeType":"VariableDeclaration","scope":8127,"src":"4936:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8122,"name":"bool","nodeType":"ElementaryTypeName","src":"4936:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8125,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"4977:5:32","nodeType":"VariableDeclaration","scope":8127,"src":"4961:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8124,"name":"address","nodeType":"ElementaryTypeName","src":"4961:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4909:74:32"},"src":"4892:92:32"},{"anonymous":false,"documentation":{"id":8128,"nodeType":"StructuredDocumentation","src":"4990:322:32","text":" @notice Emitted when the owner of this contract toggles the ability of the ManagedService\ncontract to propose deployments.\n @param isManaged Boolean indicating if the ManagedService contract is allowed to propose\ndeployments.\n @param owner Address of the owner."},"eventSelector":"adea028b90fc36108cad0d47879e8f5e0efa35bc21ad2fcf625e4ce56aff3b4b","id":8134,"name":"ToggledManagedProposals","nameLocation":"5323:23:32","nodeType":"EventDefinition","parameters":{"id":8133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8130,"indexed":false,"mutability":"mutable","name":"isManaged","nameLocation":"5352:9:32","nodeType":"VariableDeclaration","scope":8134,"src":"5347:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8129,"name":"bool","nodeType":"ElementaryTypeName","src":"5347:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8132,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"5379:5:32","nodeType":"VariableDeclaration","scope":8134,"src":"5363:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8131,"name":"address","nodeType":"ElementaryTypeName","src":"5363:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5346:39:32"},"src":"5317:69:32"},{"anonymous":false,"documentation":{"id":8135,"nodeType":"StructuredDocumentation","src":"5392:188:32","text":" @notice Emitted when ETH is deposited in this contract.\n @param from   Address of the account that deposited ETH.\n @param amount ETH amount deposited."},"eventSelector":"6c703791f399558807424f489ccd811c72b4ff0b74af547264fad7c646776df0","id":8141,"name":"ETHDeposited","nameLocation":"5591:12:32","nodeType":"EventDefinition","parameters":{"id":8140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8137,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"5620:4:32","nodeType":"VariableDeclaration","scope":8141,"src":"5604:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8136,"name":"address","nodeType":"ElementaryTypeName","src":"5604:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8139,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"5642:6:32","nodeType":"VariableDeclaration","scope":8141,"src":"5626:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8138,"name":"uint256","nodeType":"ElementaryTypeName","src":"5626:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5603:46:32"},"src":"5585:65:32"},{"anonymous":false,"documentation":{"id":8142,"nodeType":"StructuredDocumentation","src":"5656:541:32","text":" @notice Emitted when a contract is deployed by this contract.\n @param referenceNameHash Hash of the reference name that corresponds to this contract.\n @param contractAddress   Address of the deployed contract.\n @param deploymentId          ID of the deployment in which the contract was deployed.\n @param referenceName     String reference name.\n @param contractKindHash Hash of the contract kind.\n @param creationCodeWithArgsHash Hash of the creation code with constructor args."},"eventSelector":"a5f92178a767e4250cb11280da2b868af52f7dbe6194258920d017e1d30cd779","id":8156,"name":"ContractDeployed","nameLocation":"6208:16:32","nodeType":"EventDefinition","parameters":{"id":8155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8144,"indexed":true,"mutability":"mutable","name":"referenceNameHash","nameLocation":"6249:17:32","nodeType":"VariableDeclaration","scope":8156,"src":"6234:32:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8143,"name":"string","nodeType":"ElementaryTypeName","src":"6234:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8146,"indexed":true,"mutability":"mutable","name":"contractAddress","nameLocation":"6292:15:32","nodeType":"VariableDeclaration","scope":8156,"src":"6276:31:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8145,"name":"address","nodeType":"ElementaryTypeName","src":"6276:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8148,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"6333:12:32","nodeType":"VariableDeclaration","scope":8156,"src":"6317:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6317:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8150,"indexed":false,"mutability":"mutable","name":"referenceName","nameLocation":"6362:13:32","nodeType":"VariableDeclaration","scope":8156,"src":"6355:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8149,"name":"string","nodeType":"ElementaryTypeName","src":"6355:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8152,"indexed":false,"mutability":"mutable","name":"contractKindHash","nameLocation":"6393:16:32","nodeType":"VariableDeclaration","scope":8156,"src":"6385:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6385:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8154,"indexed":false,"mutability":"mutable","name":"creationCodeWithArgsHash","nameLocation":"6427:24:32","nodeType":"VariableDeclaration","scope":8156,"src":"6419:32:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6419:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6224:233:32"},"src":"6202:256:32"},{"anonymous":false,"documentation":{"id":8157,"nodeType":"StructuredDocumentation","src":"6464:547:32","text":" @notice Emitted when a contract deployment is skipped. This occurs when a contract already\nexists at the Create3 address.\n @param referenceNameHash Hash of the reference name that corresponds to this contract.\n @param contractAddress   Address of the deployed contract.\n @param deploymentId          ID of the deployment in which the contract was deployed.\n @param referenceName     String reference name.\n @param actionIndex Index of the action that attempted to deploy the contract."},"eventSelector":"dc12392bc0b29f679ba6e7c5f560dd5735a9909ee29c4b345ef19df2c623b1b0","id":8169,"name":"ContractDeploymentSkipped","nameLocation":"7022:25:32","nodeType":"EventDefinition","parameters":{"id":8168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8159,"indexed":true,"mutability":"mutable","name":"referenceNameHash","nameLocation":"7072:17:32","nodeType":"VariableDeclaration","scope":8169,"src":"7057:32:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8158,"name":"string","nodeType":"ElementaryTypeName","src":"7057:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8161,"indexed":true,"mutability":"mutable","name":"contractAddress","nameLocation":"7115:15:32","nodeType":"VariableDeclaration","scope":8169,"src":"7099:31:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8160,"name":"address","nodeType":"ElementaryTypeName","src":"7099:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8163,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"7156:12:32","nodeType":"VariableDeclaration","scope":8169,"src":"7140:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7140:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8165,"indexed":false,"mutability":"mutable","name":"referenceName","nameLocation":"7185:13:32","nodeType":"VariableDeclaration","scope":8169,"src":"7178:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8164,"name":"string","nodeType":"ElementaryTypeName","src":"7178:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8167,"indexed":false,"mutability":"mutable","name":"actionIndex","nameLocation":"7216:11:32","nodeType":"VariableDeclaration","scope":8169,"src":"7208:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8166,"name":"uint256","nodeType":"ElementaryTypeName","src":"7208:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7047:186:32"},"src":"7016:218:32"},{"anonymous":false,"documentation":{"id":8170,"nodeType":"StructuredDocumentation","src":"7240:556:32","text":" @notice Emitted when a deployment fails. This should only occur if the constructor of a\ndeployed contract reverts.\n @param referenceNameHash Hash of the reference name that corresponds to this contract.\n @param expectedAddress   Expected Create3 address of the contract.\n @param deploymentId      ID of the deployment in which the contract deployment was attempted.\n @param referenceName     String reference name.\n @param actionIndex Index of the action that attempted to deploy the contract."},"eventSelector":"b56435b217b7b283698159b613df8b2b5d3c9eb8a9cf2abd2762d0b9d08c098b","id":8182,"name":"DeploymentFailed","nameLocation":"7807:16:32","nodeType":"EventDefinition","parameters":{"id":8181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8172,"indexed":true,"mutability":"mutable","name":"referenceNameHash","nameLocation":"7848:17:32","nodeType":"VariableDeclaration","scope":8182,"src":"7833:32:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8171,"name":"string","nodeType":"ElementaryTypeName","src":"7833:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8174,"indexed":true,"mutability":"mutable","name":"expectedAddress","nameLocation":"7891:15:32","nodeType":"VariableDeclaration","scope":8182,"src":"7875:31:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8173,"name":"address","nodeType":"ElementaryTypeName","src":"7875:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8176,"indexed":true,"mutability":"mutable","name":"deploymentId","nameLocation":"7932:12:32","nodeType":"VariableDeclaration","scope":8182,"src":"7916:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7916:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8178,"indexed":false,"mutability":"mutable","name":"referenceName","nameLocation":"7961:13:32","nodeType":"VariableDeclaration","scope":8182,"src":"7954:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8177,"name":"string","nodeType":"ElementaryTypeName","src":"7954:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8180,"indexed":false,"mutability":"mutable","name":"actionIndex","nameLocation":"7992:11:32","nodeType":"VariableDeclaration","scope":8182,"src":"7984:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8179,"name":"uint256","nodeType":"ElementaryTypeName","src":"7984:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7823:186:32"},"src":"7801:209:32"}],"scope":8184,"src":"57:7955:32","usedErrors":[]}],"src":"32:7981:32"},"id":32},"contracts/ChugSplashManagerProxy.sol":{"ast":{"absolutePath":"contracts/ChugSplashManagerProxy.sol","exportedSymbols":{"ChugSplashManagerProxy":[8304],"ChugSplashRegistry":[8652],"IChugSplashManager":[9711],"Proxy":[573]},"id":8305,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8185,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:33"},{"absolutePath":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","file":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","id":8187,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8305,"sourceUnit":574,"src":"58:86:33","symbolAliases":[{"foreign":{"id":8186,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"67:5:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashRegistry.sol","file":"./ChugSplashRegistry.sol","id":8189,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8305,"sourceUnit":8653,"src":"145:62:33","symbolAliases":[{"foreign":{"id":8188,"name":"ChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"154:18:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IChugSplashManager.sol","file":"./interfaces/IChugSplashManager.sol","id":8191,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8305,"sourceUnit":9712,"src":"208:73:33","symbolAliases":[{"foreign":{"id":8190,"name":"IChugSplashManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"217:18:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8193,"name":"Proxy","nodeType":"IdentifierPath","referencedDeclaration":573,"src":"751:5:33"},"id":8194,"nodeType":"InheritanceSpecifier","src":"751:5:33"}],"canonicalName":"ChugSplashManagerProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":8192,"nodeType":"StructuredDocumentation","src":"283:432:33","text":" @title ChugSplashManagerProxy\n @notice Proxy contract owned by the user. This contract delegatecalls into the ChugSplashManager\ncontract to perform deployments. This proxy is designed to be upgradable by the user in a fully\nopt-in manner. New implementations of the ChugSplashManager must be approved by the\nChugSplashRegistry contract to prevent malicious ChugSplashManager implementations from being\nused."},"fullyImplemented":true,"id":8304,"linearizedBaseContracts":[8304,573],"name":"ChugSplashManagerProxy","nameLocation":"725:22:33","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":8195,"nodeType":"StructuredDocumentation","src":"763:61:33","text":" @notice Address of the ChugSplashRegistry."},"functionSelector":"7b103999","id":8198,"mutability":"immutable","name":"registry","nameLocation":"865:8:33","nodeType":"VariableDeclaration","scope":8304,"src":"829:44:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},"typeName":{"id":8197,"nodeType":"UserDefinedTypeName","pathNode":{"id":8196,"name":"ChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":8652,"src":"829:18:33"},"referencedDeclaration":8652,"src":"829:18:33","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"visibility":"public"},{"body":{"id":8224,"nodeType":"Block","src":"1009:226:33","statements":[{"assignments":[8202],"declarations":[{"constant":false,"id":8202,"mutability":"mutable","name":"impl","nameLocation":"1027:4:33","nodeType":"VariableDeclaration","scope":8224,"src":"1019:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8201,"name":"address","nodeType":"ElementaryTypeName","src":"1019:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8205,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8203,"name":"_getImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"1034:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1034:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1019:35:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8207,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8202,"src":"1085:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1101:1:33","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":8209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1093:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8208,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:33","typeDescriptions":{}}},"id":8211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1093:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1085:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":8218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1107:39:33","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":8214,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8202,"src":"1127:4:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8213,"name":"IChugSplashManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"1108:18:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IChugSplashManager_$9711_$","typeString":"type(contract IChugSplashManager)"}},"id":8215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1108:24:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashManager_$9711","typeString":"contract IChugSplashManager"}},"id":8216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isExecuting","nodeType":"MemberAccess","referencedDeclaration":9607,"src":"1108:36:33","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":8217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1108:38:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1085:61:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c6173684d616e6167657250726f78793a20657865637574696f6e20696e2070726f6772657373","id":8220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1160:47:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_45cc171845f99e8fa73c4c3a65c67a12ab6ccab9bc31079207a49981696940b3","typeString":"literal_string \"ChugSplashManagerProxy: execution in progress\""},"value":"ChugSplashManagerProxy: execution in progress"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45cc171845f99e8fa73c4c3a65c67a12ab6ccab9bc31079207a49981696940b3","typeString":"literal_string \"ChugSplashManagerProxy: execution in progress\""}],"id":8206,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1064:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1064:153:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8222,"nodeType":"ExpressionStatement","src":"1064:153:33"},{"id":8223,"nodeType":"PlaceholderStatement","src":"1227:1:33"}]},"documentation":{"id":8199,"nodeType":"StructuredDocumentation","src":"880:98:33","text":" @notice Modifier that throws an error if a deployment is currently in progress."},"id":8225,"name":"isNotExecuting","nameLocation":"992:14:33","nodeType":"ModifierDefinition","parameters":{"id":8200,"nodeType":"ParameterList","parameters":[],"src":"1006:2:33"},"src":"983:252:33","virtual":false,"visibility":"internal"},{"body":{"id":8239,"nodeType":"Block","src":"1507:165:33","statements":[{"expression":{"arguments":[{"arguments":[{"id":8233,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8228,"src":"1570:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8231,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"1538:8:33","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"id":8232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"managerImplementations","nodeType":"MemberAccess","referencedDeclaration":8351,"src":"1538:31:33","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":8234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1538:48:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c6173684d616e6167657250726f78793a20756e617070726f766564206d616e61676572","id":8235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1600:44:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e002ab6c786250dd5f580e765258ad5fb4c08aee87e5cf4c9ecd74c003c9ce4","typeString":"literal_string \"ChugSplashManagerProxy: unapproved manager\""},"value":"ChugSplashManagerProxy: unapproved manager"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e002ab6c786250dd5f580e765258ad5fb4c08aee87e5cf4c9ecd74c003c9ce4","typeString":"literal_string \"ChugSplashManagerProxy: unapproved manager\""}],"id":8230,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1517:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1517:137:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8237,"nodeType":"ExpressionStatement","src":"1517:137:33"},{"id":8238,"nodeType":"PlaceholderStatement","src":"1664:1:33"}]},"documentation":{"id":8226,"nodeType":"StructuredDocumentation","src":"1241:202:33","text":" @notice Modifier that throws an error if the new implementation is not approved by the\nChugSplashRegistry.\n@param _implementation The address of the new implementation."},"id":8240,"name":"isApprovedImplementation","nameLocation":"1457:24:33","nodeType":"ModifierDefinition","parameters":{"id":8229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8228,"mutability":"mutable","name":"_implementation","nameLocation":"1490:15:33","nodeType":"VariableDeclaration","scope":8240,"src":"1482:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8227,"name":"address","nodeType":"ElementaryTypeName","src":"1482:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1481:25:33"},"src":"1448:224:33","virtual":false,"visibility":"internal"},{"body":{"id":8256,"nodeType":"Block","src":"1928:37:33","statements":[{"expression":{"id":8254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8252,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"1938:8:33","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8253,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8244,"src":"1949:9:33","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"src":"1938:20:33","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"id":8255,"nodeType":"ExpressionStatement","src":"1938:20:33"}]},"documentation":{"id":8241,"nodeType":"StructuredDocumentation","src":"1678:165:33","text":" @param _registry              The ChugSplashRegistry's address.\n @param _admin                 Owner of this contract. Usually the end-user."},"id":8257,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8249,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8246,"src":"1920:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8250,"kind":"baseConstructorSpecifier","modifierName":{"id":8248,"name":"Proxy","nodeType":"IdentifierPath","referencedDeclaration":573,"src":"1914:5:33"},"nodeType":"ModifierInvocation","src":"1914:13:33"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8244,"mutability":"mutable","name":"_registry","nameLocation":"1879:9:33","nodeType":"VariableDeclaration","scope":8257,"src":"1860:28:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},"typeName":{"id":8243,"nodeType":"UserDefinedTypeName","pathNode":{"id":8242,"name":"ChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":8652,"src":"1860:18:33"},"referencedDeclaration":8652,"src":"1860:18:33","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"visibility":"internal"},{"constant":false,"id":8246,"mutability":"mutable","name":"_admin","nameLocation":"1898:6:33","nodeType":"VariableDeclaration","scope":8257,"src":"1890:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8245,"name":"address","nodeType":"ElementaryTypeName","src":"1890:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1859:46:33"},"returnParameters":{"id":8251,"nodeType":"ParameterList","parameters":[],"src":"1928:0:33"},"scope":8304,"src":"1848:117:33","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[425],"body":{"id":8277,"nodeType":"Block","src":"2503:49:33","statements":[{"expression":{"arguments":[{"id":8274,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8260,"src":"2529:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8271,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2513:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ChugSplashManagerProxy_$8304_$","typeString":"type(contract super ChugSplashManagerProxy)"}},"id":8273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":425,"src":"2513:15:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2513:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8276,"nodeType":"ExpressionStatement","src":"2513:32:33"}]},"documentation":{"id":8258,"nodeType":"StructuredDocumentation","src":"1971:376:33","text":" @notice Sets a new implementation for this proxy. Only the owner can call this function. This\nfunction can only be called when a deployment is not in progress to prevent\nunexpected behavior. The new implementation must be approved by the\nChugSplashRegistry to prevent malicious ChugSplashManager implementations."},"functionSelector":"3659cfe6","id":8278,"implemented":true,"kind":"function","modifiers":[{"id":8264,"kind":"modifierInvocation","modifierName":{"id":8263,"name":"proxyCallIfNotAdmin","nodeType":"IdentifierPath","referencedDeclaration":387,"src":"2426:19:33"},"nodeType":"ModifierInvocation","src":"2426:19:33"},{"id":8266,"kind":"modifierInvocation","modifierName":{"id":8265,"name":"isNotExecuting","nodeType":"IdentifierPath","referencedDeclaration":8225,"src":"2446:14:33"},"nodeType":"ModifierInvocation","src":"2446:14:33"},{"arguments":[{"id":8268,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8260,"src":"2486:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8269,"kind":"modifierInvocation","modifierName":{"id":8267,"name":"isApprovedImplementation","nodeType":"IdentifierPath","referencedDeclaration":8240,"src":"2461:24:33"},"nodeType":"ModifierInvocation","src":"2461:41:33"}],"name":"upgradeTo","nameLocation":"2361:9:33","nodeType":"FunctionDefinition","overrides":{"id":8262,"nodeType":"OverrideSpecifier","overrides":[],"src":"2417:8:33"},"parameters":{"id":8261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8260,"mutability":"mutable","name":"_implementation","nameLocation":"2388:15:33","nodeType":"VariableDeclaration","scope":8278,"src":"2380:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8259,"name":"address","nodeType":"ElementaryTypeName","src":"2380:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2370:39:33"},"returnParameters":{"id":8270,"nodeType":"ParameterList","parameters":[],"src":"2503:0:33"},"scope":8304,"src":"2352:200:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[458],"body":{"id":8302,"nodeType":"Block","src":"3273:70:33","statements":[{"expression":{"arguments":[{"id":8298,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8281,"src":"3313:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8299,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8283,"src":"3330:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8296,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3290:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ChugSplashManagerProxy_$8304_$","typeString":"type(contract super ChugSplashManagerProxy)"}},"id":8297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":458,"src":"3290:22:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes calldata) returns (bytes memory)"}},"id":8300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3290:46:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8295,"id":8301,"nodeType":"Return","src":"3283:53:33"}]},"documentation":{"id":8279,"nodeType":"StructuredDocumentation","src":"2558:431:33","text":" @notice Sets a new implementation for this proxy and delegatecalls an arbitrary function.\nOnly the owner can call this function. This function can only be called when a\ndeployment is not in progress to prevent unexpected behavior. The new implementation\nmust be approved by the ChugSplashRegistry to prevent malicious ChugSplashManager\nimplementations."},"functionSelector":"4f1ef286","id":8303,"implemented":true,"kind":"function","modifiers":[{"id":8287,"kind":"modifierInvocation","modifierName":{"id":8286,"name":"proxyCallIfNotAdmin","nodeType":"IdentifierPath","referencedDeclaration":387,"src":"3145:19:33"},"nodeType":"ModifierInvocation","src":"3145:19:33"},{"id":8289,"kind":"modifierInvocation","modifierName":{"id":8288,"name":"isNotExecuting","nodeType":"IdentifierPath","referencedDeclaration":8225,"src":"3173:14:33"},"nodeType":"ModifierInvocation","src":"3173:14:33"},{"arguments":[{"id":8291,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8281,"src":"3221:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8292,"kind":"modifierInvocation","modifierName":{"id":8290,"name":"isApprovedImplementation","nodeType":"IdentifierPath","referencedDeclaration":8240,"src":"3196:24:33"},"nodeType":"ModifierInvocation","src":"3196:41:33"}],"name":"upgradeToAndCall","nameLocation":"3003:16:33","nodeType":"FunctionDefinition","overrides":{"id":8285,"nodeType":"OverrideSpecifier","overrides":[],"src":"3128:8:33"},"parameters":{"id":8284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8281,"mutability":"mutable","name":"_implementation","nameLocation":"3037:15:33","nodeType":"VariableDeclaration","scope":8303,"src":"3029:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8280,"name":"address","nodeType":"ElementaryTypeName","src":"3029:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8283,"mutability":"mutable","name":"_data","nameLocation":"3077:5:33","nodeType":"VariableDeclaration","scope":8303,"src":"3062:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8282,"name":"bytes","nodeType":"ElementaryTypeName","src":"3062:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3019:69:33"},"returnParameters":{"id":8295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8303,"src":"3255:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8293,"name":"bytes","nodeType":"ElementaryTypeName","src":"3255:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3254:14:33"},"scope":8304,"src":"2994:349:33","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":8305,"src":"716:2629:33","usedErrors":[]}],"src":"32:3314:33"},"id":33},"contracts/ChugSplashRegistry.sol":{"ast":{"absolutePath":"contracts/ChugSplashRegistry.sol","exportedSymbols":{"ChugSplashManagerProxy":[8304],"ChugSplashRegistry":[8652],"ChugSplashRegistryEvents":[8708],"IChugSplashManager":[9711],"IChugSplashRegistry":[9774],"Initializable":[2491],"Ownable":[2297],"Semver":[9036],"Version":[5567]},"id":8653,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8306,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:34"},{"absolutePath":"contracts/ChugSplashManagerProxy.sol","file":"./ChugSplashManagerProxy.sol","id":8308,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":8305,"src":"58:70:34","symbolAliases":[{"foreign":{"id":8307,"name":"ChugSplashManagerProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8304,"src":"67:22:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":8310,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":2298,"src":"129:69:34","symbolAliases":[{"foreign":{"id":8309,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"138:7:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":8312,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":2492,"src":"199:86:34","symbolAliases":[{"foreign":{"id":8311,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2491,"src":"208:13:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IChugSplashManager.sol","file":"./interfaces/IChugSplashManager.sol","id":8314,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":9712,"src":"286:73:34","symbolAliases":[{"foreign":{"id":8313,"name":"IChugSplashManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"295:18:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Semver.sol","file":"./Semver.sol","id":8316,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":9037,"src":"360:38:34","symbolAliases":[{"foreign":{"id":8315,"name":"Semver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"369:6:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashRegistryEvents.sol","file":"./ChugSplashRegistryEvents.sol","id":8318,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":8709,"src":"399:74:34","symbolAliases":[{"foreign":{"id":8317,"name":"ChugSplashRegistryEvents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8708,"src":"408:24:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IChugSplashRegistry.sol","file":"./interfaces/IChugSplashRegistry.sol","id":8320,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":9775,"src":"474:75:34","symbolAliases":[{"foreign":{"id":8319,"name":"IChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9774,"src":"483:19:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"./ChugSplashDataTypes.sol","id":8322,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8653,"sourceUnit":5617,"src":"550:52:34","symbolAliases":[{"foreign":{"id":8321,"name":"Version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"559:7:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8324,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":2297,"src":"1277:7:34"},"id":8325,"nodeType":"InheritanceSpecifier","src":"1277:7:34"},{"baseName":{"id":8326,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":2491,"src":"1290:13:34"},"id":8327,"nodeType":"InheritanceSpecifier","src":"1290:13:34"},{"baseName":{"id":8328,"name":"ChugSplashRegistryEvents","nodeType":"IdentifierPath","referencedDeclaration":8708,"src":"1309:24:34"},"id":8329,"nodeType":"InheritanceSpecifier","src":"1309:24:34"},{"baseName":{"id":8330,"name":"IChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":9774,"src":"1339:19:34"},"id":8331,"nodeType":"InheritanceSpecifier","src":"1339:19:34"}],"canonicalName":"ChugSplashRegistry","contractDependencies":[8304],"contractKind":"contract","documentation":{"id":8323,"nodeType":"StructuredDocumentation","src":"604:637:34","text":" @title ChugSplashRegistry\n @notice The ChugSplashRegistry is the root contract for the ChugSplash deployment system. This\n         contract allows callers to register new projects. Also, every event emitted in the\n         ChugSplash system is announced through this contract. This makes it easy for clients to\n         find and index events that occur throughout the deployment process. Lastly, the owner of\n         this contract is able to add support for new contract kinds (e.g. OpenZeppelin's\nTransparent proxy). The owner can also new versions of the ChugSplashManager\n         implementation."},"fullyImplemented":true,"id":8652,"linearizedBaseContracts":[8652,9774,8708,2491,2297,2843],"name":"ChugSplashRegistry","nameLocation":"1251:18:34","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[9723],"constant":false,"documentation":{"id":8332,"nodeType":"StructuredDocumentation","src":"1365:91:34","text":" @notice Mapping of organization IDs to ChugSplashManagerProxy addresses."},"functionSelector":"b96ea12d","id":8336,"mutability":"mutable","name":"projects","nameLocation":"1504:8:34","nodeType":"VariableDeclaration","scope":8652,"src":"1461:51:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_payable_$","typeString":"mapping(bytes32 => address payable)"},"typeName":{"id":8335,"keyType":{"id":8333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1469:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1461:35:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_payable_$","typeString":"mapping(bytes32 => address payable)"},"valueType":{"id":8334,"name":"address","nodeType":"ElementaryTypeName","src":"1480:15:34","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},"visibility":"public"},{"baseFunctions":[9742],"constant":false,"documentation":{"id":8337,"nodeType":"StructuredDocumentation","src":"1519:158:34","text":" @notice Mapping of ChugSplashManagerProxy addresses to a boolean indicating whether or not\n         it was deployed by this contract."},"functionSelector":"b696e7fa","id":8341,"mutability":"mutable","name":"managerProxies","nameLocation":"1714:14:34","nodeType":"VariableDeclaration","scope":8652,"src":"1682:46:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8340,"keyType":{"id":8338,"name":"address","nodeType":"ElementaryTypeName","src":"1690:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1682:24:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":8339,"name":"bool","nodeType":"ElementaryTypeName","src":"1701:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"baseFunctions":[9773],"constant":false,"documentation":{"id":8342,"nodeType":"StructuredDocumentation","src":"1735:89:34","text":" @notice Mapping of contract kind hashes to adapter contract addresses."},"functionSelector":"72c6838f","id":8346,"mutability":"mutable","name":"adapters","nameLocation":"1864:8:34","nodeType":"VariableDeclaration","scope":8652,"src":"1829:43:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":8345,"keyType":{"id":8343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1837:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1829:27:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":8344,"name":"address","nodeType":"ElementaryTypeName","src":"1848:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"documentation":{"id":8347,"nodeType":"StructuredDocumentation","src":"1879:154:34","text":" @notice Mapping of ChugSplashManager implementations to a boolean indicating whether or not\n         it's a valid implementation."},"functionSelector":"204bbec7","id":8351,"mutability":"mutable","name":"managerImplementations","nameLocation":"2070:22:34","nodeType":"VariableDeclaration","scope":8652,"src":"2038:54:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8350,"keyType":{"id":8348,"name":"address","nodeType":"ElementaryTypeName","src":"2046:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2038:24:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":8349,"name":"bool","nodeType":"ElementaryTypeName","src":"2057:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":8352,"nodeType":"StructuredDocumentation","src":"2099:128:34","text":" @notice Mapping of (major, minor, patch) versions to ChugSplashManager implementation\n         address."},"functionSelector":"e91204de","id":8360,"mutability":"mutable","name":"versions","nameLocation":"2298:8:34","nodeType":"VariableDeclaration","scope":8652,"src":"2232:74:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$_$","typeString":"mapping(uint256 => mapping(uint256 => mapping(uint256 => address)))"},"typeName":{"id":8359,"keyType":{"id":8353,"name":"uint","nodeType":"ElementaryTypeName","src":"2240:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2232:58:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$_$","typeString":"mapping(uint256 => mapping(uint256 => mapping(uint256 => address)))"},"valueType":{"id":8358,"keyType":{"id":8354,"name":"uint","nodeType":"ElementaryTypeName","src":"2256:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2248:41:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"},"valueType":{"id":8357,"keyType":{"id":8355,"name":"uint","nodeType":"ElementaryTypeName","src":"2272:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2264:24:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":8356,"name":"address","nodeType":"ElementaryTypeName","src":"2280:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}}},"visibility":"public"},{"body":{"id":8370,"nodeType":"Block","src":"2416:43:34","statements":[{"expression":{"arguments":[{"id":8367,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"2445:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8366,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"2426:18:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2426:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8369,"nodeType":"ExpressionStatement","src":"2426:26:34"}]},"documentation":{"id":8361,"nodeType":"StructuredDocumentation","src":"2313:70:34","text":" @param _owner Address of the owner of the registry."},"id":8371,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8363,"mutability":"mutable","name":"_owner","nameLocation":"2408:6:34","nodeType":"VariableDeclaration","scope":8371,"src":"2400:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8362,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2399:16:34"},"returnParameters":{"id":8365,"nodeType":"ParameterList","parameters":[],"src":"2416:0:34"},"scope":8652,"src":"2388:71:34","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9735],"body":{"id":8496,"nodeType":"Block","src":"3133:1206:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":8387,"name":"projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8336,"src":"3172:8:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_payable_$","typeString":"mapping(bytes32 => address payable)"}},"id":8389,"indexExpression":{"id":8388,"name":"_organizationID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"3181:15:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3172:25:34","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":8386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8385,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:34","typeDescriptions":{}}},"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3164:34:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3210:1:34","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":8392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3202:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8391,"name":"address","nodeType":"ElementaryTypeName","src":"3202:7:34","typeDescriptions":{}}},"id":8394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3202:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3164:48:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c61736852656769737472793a206f726720494420616c72656164792072656769737465726564","id":8396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3226:47:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_4831d89bdcb36267605b80783dff59fda98f7cf13e280af80e15c810474e8dc3","typeString":"literal_string \"ChugSplashRegistry: org ID already registered\""},"value":"ChugSplashRegistry: org ID already registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4831d89bdcb36267605b80783dff59fda98f7cf13e280af80e15c810474e8dc3","typeString":"literal_string \"ChugSplashRegistry: org ID already registered\""}],"id":8384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3143:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3143:140:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8398,"nodeType":"ExpressionStatement","src":"3143:140:34"},{"assignments":[8400],"declarations":[{"constant":false,"id":8400,"mutability":"mutable","name":"managerImpl","nameLocation":"3302:11:34","nodeType":"VariableDeclaration","scope":8496,"src":"3294:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8399,"name":"address","nodeType":"ElementaryTypeName","src":"3294:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8411,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":8401,"name":"versions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"3316:8:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$_$","typeString":"mapping(uint256 => mapping(uint256 => mapping(uint256 => address)))"}},"id":8404,"indexExpression":{"expression":{"id":8402,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8379,"src":"3325:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":8403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"major","nodeType":"MemberAccess","referencedDeclaration":5562,"src":"3325:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3316:24:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":8407,"indexExpression":{"expression":{"id":8405,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8379,"src":"3341:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":8406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minor","nodeType":"MemberAccess","referencedDeclaration":5564,"src":"3341:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3316:40:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8410,"indexExpression":{"expression":{"id":8408,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8379,"src":"3357:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":8409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"patch","nodeType":"MemberAccess","referencedDeclaration":5566,"src":"3357:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3316:56:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3294:78:34"},{"expression":{"arguments":[{"baseExpression":{"id":8413,"name":"managerImplementations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8351,"src":"3390:22:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8415,"indexExpression":{"id":8414,"name":"managerImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8400,"src":"3413:11:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3390:35:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c61736852656769737472793a20696e76616c6964206d616e616765722076657273696f6e","id":8416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3427:45:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_5cf61b6db62b7b4a11cfa3710fb6ace078799e9fd5c01f362c0b2c93119ee684","typeString":"literal_string \"ChugSplashRegistry: invalid manager version\""},"value":"ChugSplashRegistry: invalid manager version"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5cf61b6db62b7b4a11cfa3710fb6ace078799e9fd5c01f362c0b2c93119ee684","typeString":"literal_string \"ChugSplashRegistry: invalid manager version\""}],"id":8412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3382:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3382:91:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8418,"nodeType":"ExpressionStatement","src":"3382:91:34"},{"assignments":[8421],"declarations":[{"constant":false,"id":8421,"mutability":"mutable","name":"managerProxy","nameLocation":"3507:12:34","nodeType":"VariableDeclaration","scope":8496,"src":"3484:35:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"},"typeName":{"id":8420,"nodeType":"UserDefinedTypeName","pathNode":{"id":8419,"name":"ChugSplashManagerProxy","nodeType":"IdentifierPath","referencedDeclaration":8304,"src":"3484:22:34"},"referencedDeclaration":8304,"src":"3484:22:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}},"visibility":"internal"}],"id":8433,"initialValue":{"arguments":[{"id":8427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3587:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},{"arguments":[{"id":8430,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3613:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}],"id":8429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3605:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8428,"name":"address","nodeType":"ElementaryTypeName","src":"3605:7:34","typeDescriptions":{}}},"id":8431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3605:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3522:26:34","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_contract$_ChugSplashRegistry_$8652_$_t_address_$returns$_t_contract$_ChugSplashManagerProxy_$8304_$","typeString":"function (contract ChugSplashRegistry,address) payable returns (contract ChugSplashManagerProxy)"},"typeName":{"id":8423,"nodeType":"UserDefinedTypeName","pathNode":{"id":8422,"name":"ChugSplashManagerProxy","nodeType":"IdentifierPath","referencedDeclaration":8304,"src":"3526:22:34"},"referencedDeclaration":8304,"src":"3526:22:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}}},"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["salt"],"nodeType":"FunctionCallOptions","options":[{"id":8425,"name":"_organizationID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"3556:15:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"src":"3522:51:34","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_contract$_ChugSplashRegistry_$8652_$_t_address_$returns$_t_contract$_ChugSplashManagerProxy_$8304_$salt","typeString":"function (contract ChugSplashRegistry,address) payable returns (contract ChugSplashManagerProxy)"}},"id":8432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3522:106:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}},"nodeType":"VariableDeclarationStatement","src":"3484:144:34"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8437,"name":"managerProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"3668:12:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}],"id":8436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3660:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8435,"name":"address","nodeType":"ElementaryTypeName","src":"3660:7:34","typeDescriptions":{}}},"id":8438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3660:21:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:1:34","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":8440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3685:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8439,"name":"address","nodeType":"ElementaryTypeName","src":"3685:7:34","typeDescriptions":{}}},"id":8442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3685:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3660:35:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c61736852656769737472793a206661696c656420746f206465706c6f79206d616e616765722070726f7879","id":8444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3709:52:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3eec6b4be813f9d76b8a1a0a8912fa8732767c03a9e25bd803c1e373a26a5ca","typeString":"literal_string \"ChugSplashRegistry: failed to deploy manager proxy\""},"value":"ChugSplashRegistry: failed to deploy manager proxy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a3eec6b4be813f9d76b8a1a0a8912fa8732767c03a9e25bd803c1e373a26a5ca","typeString":"literal_string \"ChugSplashRegistry: failed to deploy manager proxy\""}],"id":8434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3639:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3639:132:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8446,"nodeType":"ExpressionStatement","src":"3639:132:34"},{"expression":{"id":8457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8447,"name":"projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8336,"src":"3782:8:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_payable_$","typeString":"mapping(bytes32 => address payable)"}},"id":8449,"indexExpression":{"id":8448,"name":"_organizationID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"3791:15:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3782:25:34","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":8454,"name":"managerProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"3826:12:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}],"id":8453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3818:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8452,"name":"address","nodeType":"ElementaryTypeName","src":"3818:7:34","typeDescriptions":{}}},"id":8455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3818:21:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3810:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":8450,"name":"address","nodeType":"ElementaryTypeName","src":"3810:8:34","stateMutability":"payable","typeDescriptions":{}}},"id":8456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3810:30:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3782:58:34","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":8458,"nodeType":"ExpressionStatement","src":"3782:58:34"},{"expression":{"id":8466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8459,"name":"managerProxies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"3850:14:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8464,"indexExpression":{"arguments":[{"id":8462,"name":"managerProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"3873:12:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}],"id":8461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3865:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8460,"name":"address","nodeType":"ElementaryTypeName","src":"3865:7:34","typeDescriptions":{}}},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3865:21:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3850:37:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3890:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3850:44:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8467,"nodeType":"ExpressionStatement","src":"3850:44:34"},{"assignments":[8469],"declarations":[{"constant":false,"id":8469,"mutability":"mutable","name":"retdata","nameLocation":"3918:7:34","nodeType":"VariableDeclaration","scope":8496,"src":"3905:20:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8468,"name":"bytes","nodeType":"ElementaryTypeName","src":"3905:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8480,"initialValue":{"arguments":[{"id":8472,"name":"managerImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8400,"src":"3971:11:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":8475,"name":"IChugSplashManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"4011:18:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IChugSplashManager_$9711_$","typeString":"type(contract IChugSplashManager)"}},"id":8476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":9601,"src":"4011:29:34","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function IChugSplashManager.initialize(bytes memory) returns (bytes memory)"}},{"id":8477,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8381,"src":"4042:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function IChugSplashManager.initialize(bytes memory) returns (bytes memory)"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8473,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3996:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"3996:14:34","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3996:52:34","tryCall":false,"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":8470,"name":"managerProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"3928:12:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}},"id":8471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":8303,"src":"3928:29:34","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) payable external returns (bytes memory)"}},"id":8479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3928:130:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:153:34"},{"expression":{"arguments":[{"id":8484,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"4149:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8481,"name":"managerProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"4124:12:34","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashManagerProxy_$8304","typeString":"contract ChugSplashManagerProxy"}},"id":8483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":471,"src":"4124:24:34","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":8485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4124:32:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8486,"nodeType":"ExpressionStatement","src":"4124:32:34"},{"eventCall":{"arguments":[{"id":8488,"name":"_organizationID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"4217:15:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8489,"name":"managerImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8400,"src":"4246:11:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8490,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"4271:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8491,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4291:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4291:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8493,"name":"retdata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"4315:7:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8487,"name":"ChugSplashRegistrationFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8667,"src":"4172:31:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,address,address,address,bytes memory)"}},"id":8494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4172:160:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8495,"nodeType":"EmitStatement","src":"4167:165:34"}]},"documentation":{"id":8372,"nodeType":"StructuredDocumentation","src":"2465:500:34","text":" @notice Finalizes the registration of an organization ID by deploying a new\nChugSplashManagerProxy contract and setting the provided owner as the initial owner of the\nnew project.\n @param _organizationID Organization ID being registered.\n @param _owner        Initial owner for the new project.\n @param _version   Version of the ChugSplashManager implementation.\n @param _data      Any data to pass to the ChugSplashManager initializer."},"functionSelector":"31662fd6","id":8497,"implemented":true,"kind":"function","modifiers":[],"name":"finalizeRegistration","nameLocation":"2979:20:34","nodeType":"FunctionDefinition","parameters":{"id":8382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8374,"mutability":"mutable","name":"_organizationID","nameLocation":"3017:15:34","nodeType":"VariableDeclaration","scope":8497,"src":"3009:23:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3009:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8376,"mutability":"mutable","name":"_owner","nameLocation":"3050:6:34","nodeType":"VariableDeclaration","scope":8497,"src":"3042:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8375,"name":"address","nodeType":"ElementaryTypeName","src":"3042:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8379,"mutability":"mutable","name":"_version","nameLocation":"3081:8:34","nodeType":"VariableDeclaration","scope":8497,"src":"3066:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version"},"typeName":{"id":8378,"nodeType":"UserDefinedTypeName","pathNode":{"id":8377,"name":"Version","nodeType":"IdentifierPath","referencedDeclaration":5567,"src":"3066:7:34"},"referencedDeclaration":5567,"src":"3066:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"}},"visibility":"internal"},{"constant":false,"id":8381,"mutability":"mutable","name":"_data","nameLocation":"3112:5:34","nodeType":"VariableDeclaration","scope":8497,"src":"3099:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8380,"name":"bytes","nodeType":"ElementaryTypeName","src":"3099:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2999:124:34"},"returnParameters":{"id":8383,"nodeType":"ParameterList","parameters":[],"src":"3133:0:34"},"scope":8652,"src":"2970:1369:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9759],"body":{"id":8518,"nodeType":"Block","src":"4597:208:34","statements":[{"expression":{"arguments":[{"baseExpression":{"id":8504,"name":"managerProxies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"4628:14:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8507,"indexExpression":{"expression":{"id":8505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4643:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4643:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4628:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c61736852656769737472793a206576656e74732063616e206f6e6c7920626520616e6e6f756e636564206279206d616e6167657273","id":8508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4668:62:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_706209a87814ddbae2965277b436e11663351c371f6f39a43909ee8f1fb6c13e","typeString":"literal_string \"ChugSplashRegistry: events can only be announced by managers\""},"value":"ChugSplashRegistry: events can only be announced by managers"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_706209a87814ddbae2965277b436e11663351c371f6f39a43909ee8f1fb6c13e","typeString":"literal_string \"ChugSplashRegistry: events can only be announced by managers\""}],"id":8503,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4607:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4607:133:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8510,"nodeType":"ExpressionStatement","src":"4607:133:34"},{"eventCall":{"arguments":[{"id":8512,"name":"_event","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8500,"src":"4771:6:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":8513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4779:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4779:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8515,"name":"_event","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8500,"src":"4791:6:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8511,"name":"EventAnnounced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8676,"src":"4756:14:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,address,string memory)"}},"id":8516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4756:42:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8517,"nodeType":"EmitStatement","src":"4751:47:34"}]},"documentation":{"id":8498,"nodeType":"StructuredDocumentation","src":"4345:198:34","text":" @notice Allows ChugSplashManager contracts to announce events. Only callable by\nChugSplashManagerProxy contracts.\n @param _event Name of the event to announce."},"functionSelector":"ea0a5237","id":8519,"implemented":true,"kind":"function","modifiers":[],"name":"announce","nameLocation":"4557:8:34","nodeType":"FunctionDefinition","parameters":{"id":8501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8500,"mutability":"mutable","name":"_event","nameLocation":"4580:6:34","nodeType":"VariableDeclaration","scope":8519,"src":"4566:20:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8499,"name":"string","nodeType":"ElementaryTypeName","src":"4566:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4565:22:34"},"returnParameters":{"id":8502,"nodeType":"ParameterList","parameters":[],"src":"4597:0:34"},"scope":8652,"src":"4548:257:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9766],"body":{"id":8544,"nodeType":"Block","src":"5209:230:34","statements":[{"expression":{"arguments":[{"baseExpression":{"id":8528,"name":"managerProxies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"5240:14:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8531,"indexExpression":{"expression":{"id":8529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5255:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5255:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5240:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c61736852656769737472793a206576656e74732063616e206f6e6c7920626520616e6e6f756e636564206279206d616e6167657273","id":8532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5280:62:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_706209a87814ddbae2965277b436e11663351c371f6f39a43909ee8f1fb6c13e","typeString":"literal_string \"ChugSplashRegistry: events can only be announced by managers\""},"value":"ChugSplashRegistry: events can only be announced by managers"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_706209a87814ddbae2965277b436e11663351c371f6f39a43909ee8f1fb6c13e","typeString":"literal_string \"ChugSplashRegistry: events can only be announced by managers\""}],"id":8527,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5219:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5219:133:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8534,"nodeType":"ExpressionStatement","src":"5219:133:34"},{"eventCall":{"arguments":[{"id":8536,"name":"_event","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8522,"src":"5391:6:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":8537,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5399:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5399:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8539,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8524,"src":"5411:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8540,"name":"_event","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8522,"src":"5418:6:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8541,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8524,"src":"5426:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8535,"name":"EventAnnouncedWithData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8689,"src":"5368:22:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,address,bytes memory,string memory,bytes memory)"}},"id":8542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5368:64:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8543,"nodeType":"EmitStatement","src":"5363:69:34"}]},"documentation":{"id":8520,"nodeType":"StructuredDocumentation","src":"4811:316:34","text":" @notice Allows ChugSplashManager contracts to announce events, including a field for\n         arbitrary data.  Only callable by ChugSplashManagerProxy contracts.\n @param _event Name of the event to announce.\n @param _data  Arbitrary data to include in the announced event."},"functionSelector":"f52cc7fd","id":8545,"implemented":true,"kind":"function","modifiers":[],"name":"announceWithData","nameLocation":"5141:16:34","nodeType":"FunctionDefinition","parameters":{"id":8525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8522,"mutability":"mutable","name":"_event","nameLocation":"5172:6:34","nodeType":"VariableDeclaration","scope":8545,"src":"5158:20:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8521,"name":"string","nodeType":"ElementaryTypeName","src":"5158:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8524,"mutability":"mutable","name":"_data","nameLocation":"5193:5:34","nodeType":"VariableDeclaration","scope":8545,"src":"5180:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8523,"name":"bytes","nodeType":"ElementaryTypeName","src":"5180:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5157:42:34"},"returnParameters":{"id":8526,"nodeType":"ParameterList","parameters":[],"src":"5209:0:34"},"scope":8652,"src":"5132:307:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9749],"body":{"id":8578,"nodeType":"Block","src":"5829:273:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8556,"name":"adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"5860:8:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":8558,"indexExpression":{"id":8557,"name":"_contractKindHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"5869:17:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5860:27:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5899:1:34","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":8560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5891:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8559,"name":"address","nodeType":"ElementaryTypeName","src":"5891:7:34","typeDescriptions":{}}},"id":8562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5891:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5860:41:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c61736852656769737472793a20636f6e7472616374206b696e642068617320616e206578697374696e672061646170746572","id":8564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5915:59:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_dba88b58b3a7016c57fa76f4ffccc408c75e04183c0935ce3ef2b4402652ef6d","typeString":"literal_string \"ChugSplashRegistry: contract kind has an existing adapter\""},"value":"ChugSplashRegistry: contract kind has an existing adapter"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dba88b58b3a7016c57fa76f4ffccc408c75e04183c0935ce3ef2b4402652ef6d","typeString":"literal_string \"ChugSplashRegistry: contract kind has an existing adapter\""}],"id":8555,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5839:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5839:145:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8566,"nodeType":"ExpressionStatement","src":"5839:145:34"},{"expression":{"id":8571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8567,"name":"adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"5995:8:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":8569,"indexExpression":{"id":8568,"name":"_contractKindHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"6004:17:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5995:27:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8570,"name":"_adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"6025:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5995:38:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8572,"nodeType":"ExpressionStatement","src":"5995:38:34"},{"eventCall":{"arguments":[{"id":8574,"name":"_contractKindHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8548,"src":"6067:17:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8575,"name":"_adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"6086:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8573,"name":"ContractKindAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"6049:17:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6049:46:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8577,"nodeType":"EmitStatement","src":"6044:51:34"}]},"documentation":{"id":8546,"nodeType":"StructuredDocumentation","src":"5445:290:34","text":" @notice Adds a new contract kind with a corresponding adapter. Only callable by the owner of\nthe ChugSplashRegistry.\n @param _contractKindHash Hash representing the contract kind.\n @param _adapter   Address of the adapter for this contract kind."},"functionSelector":"4b67f1a8","id":8579,"implemented":true,"kind":"function","modifiers":[{"id":8553,"kind":"modifierInvocation","modifierName":{"id":8552,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2216,"src":"5819:9:34"},"nodeType":"ModifierInvocation","src":"5819:9:34"}],"name":"addContractKind","nameLocation":"5749:15:34","nodeType":"FunctionDefinition","parameters":{"id":8551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8548,"mutability":"mutable","name":"_contractKindHash","nameLocation":"5773:17:34","nodeType":"VariableDeclaration","scope":8579,"src":"5765:25:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5765:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8550,"mutability":"mutable","name":"_adapter","nameLocation":"5800:8:34","nodeType":"VariableDeclaration","scope":8579,"src":"5792:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8549,"name":"address","nodeType":"ElementaryTypeName","src":"5792:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5764:45:34"},"returnParameters":{"id":8554,"nodeType":"ParameterList","parameters":[],"src":"5829:0:34"},"scope":8652,"src":"5740:362:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9754],"body":{"id":8650,"nodeType":"Block","src":"6570:484:34","statements":[{"assignments":[8589],"declarations":[{"constant":false,"id":8589,"mutability":"mutable","name":"version","nameLocation":"6595:7:34","nodeType":"VariableDeclaration","scope":8650,"src":"6580:22:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version"},"typeName":{"id":8588,"nodeType":"UserDefinedTypeName","pathNode":{"id":8587,"name":"Version","nodeType":"IdentifierPath","referencedDeclaration":5567,"src":"6580:7:34"},"referencedDeclaration":5567,"src":"6580:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"}},"visibility":"internal"}],"id":8595,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":8591,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8582,"src":"6612:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8590,"name":"Semver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"6605:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Semver_$9036_$","typeString":"type(contract Semver)"}},"id":8592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6605:16:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Semver_$9036","typeString":"contract Semver"}},"id":8593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":9035,"src":"6605:24:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_Version_$5567_memory_ptr_$","typeString":"function () view external returns (struct Version memory)"}},"id":8594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6605:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"nodeType":"VariableDeclarationStatement","src":"6580:51:34"},{"assignments":[8597],"declarations":[{"constant":false,"id":8597,"mutability":"mutable","name":"major","nameLocation":"6649:5:34","nodeType":"VariableDeclaration","scope":8650,"src":"6641:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8596,"name":"uint256","nodeType":"ElementaryTypeName","src":"6641:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8600,"initialValue":{"expression":{"id":8598,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8589,"src":"6657:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":8599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"major","nodeType":"MemberAccess","referencedDeclaration":5562,"src":"6657:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6641:29:34"},{"assignments":[8602],"declarations":[{"constant":false,"id":8602,"mutability":"mutable","name":"minor","nameLocation":"6688:5:34","nodeType":"VariableDeclaration","scope":8650,"src":"6680:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8601,"name":"uint256","nodeType":"ElementaryTypeName","src":"6680:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8605,"initialValue":{"expression":{"id":8603,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8589,"src":"6696:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":8604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minor","nodeType":"MemberAccess","referencedDeclaration":5564,"src":"6696:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6680:29:34"},{"assignments":[8607],"declarations":[{"constant":false,"id":8607,"mutability":"mutable","name":"patch","nameLocation":"6727:5:34","nodeType":"VariableDeclaration","scope":8650,"src":"6719:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8606,"name":"uint256","nodeType":"ElementaryTypeName","src":"6719:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8610,"initialValue":{"expression":{"id":8608,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8589,"src":"6735:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"id":8609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"patch","nodeType":"MemberAccess","referencedDeclaration":5566,"src":"6735:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6719:29:34"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":8612,"name":"versions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"6780:8:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$_$","typeString":"mapping(uint256 => mapping(uint256 => mapping(uint256 => address)))"}},"id":8614,"indexExpression":{"id":8613,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"6789:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6780:15:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":8616,"indexExpression":{"id":8615,"name":"minor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"6796:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6780:22:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8618,"indexExpression":{"id":8617,"name":"patch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8607,"src":"6803:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6780:29:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6821:1:34","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":8620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6813:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8619,"name":"address","nodeType":"ElementaryTypeName","src":"6813:7:34","typeDescriptions":{}}},"id":8622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6813:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6780:43:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4368756753706c61736852656769737472793a2076657273696f6e20616c726561647920736574","id":8624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6837:41:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_a86248a7b9786df3e2a168bab6a551b9403c1c6ff3d83fca0c4e91f03cb8fe15","typeString":"literal_string \"ChugSplashRegistry: version already set\""},"value":"ChugSplashRegistry: version already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a86248a7b9786df3e2a168bab6a551b9403c1c6ff3d83fca0c4e91f03cb8fe15","typeString":"literal_string \"ChugSplashRegistry: version already set\""}],"id":8611,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6759:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6759:129:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8626,"nodeType":"ExpressionStatement","src":"6759:129:34"},{"expression":{"id":8631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8627,"name":"managerImplementations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8351,"src":"6899:22:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8629,"indexExpression":{"id":8628,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8582,"src":"6922:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6899:32:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6934:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6899:39:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8632,"nodeType":"ExpressionStatement","src":"6899:39:34"},{"expression":{"id":8641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":8633,"name":"versions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"6948:8:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$_$","typeString":"mapping(uint256 => mapping(uint256 => mapping(uint256 => address)))"}},"id":8637,"indexExpression":{"id":8634,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"6957:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6948:15:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":8638,"indexExpression":{"id":8635,"name":"minor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"6964:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6948:22:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8639,"indexExpression":{"id":8636,"name":"patch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8607,"src":"6971:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6948:29:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8640,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8582,"src":"6980:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6948:40:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8642,"nodeType":"ExpressionStatement","src":"6948:40:34"},{"eventCall":{"arguments":[{"id":8644,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"7017:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8645,"name":"minor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"7024:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8646,"name":"patch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8607,"src":"7031:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8647,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8582,"src":"7038:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8643,"name":"VersionAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"7004:12:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,uint256,address)"}},"id":8648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7004:43:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8649,"nodeType":"EmitStatement","src":"6999:48:34"}]},"documentation":{"id":8580,"nodeType":"StructuredDocumentation","src":"6108:400:34","text":" @notice Adds a new version of the ChugSplashManager implementation. Only callable by the\nowner of the ChugSplashRegistry.\n  The version is specified by the `Semver` contract\n      attached to the implementation. Throws an error if the version\n      has already been set.\n @param _manager Address of the ChugSplashManager implementation to add."},"functionSelector":"11cdf27a","id":8651,"implemented":true,"kind":"function","modifiers":[{"id":8585,"kind":"modifierInvocation","modifierName":{"id":8584,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":2216,"src":"6560:9:34"},"nodeType":"ModifierInvocation","src":"6560:9:34"}],"name":"addVersion","nameLocation":"6522:10:34","nodeType":"FunctionDefinition","parameters":{"id":8583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8582,"mutability":"mutable","name":"_manager","nameLocation":"6541:8:34","nodeType":"VariableDeclaration","scope":8651,"src":"6533:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8581,"name":"address","nodeType":"ElementaryTypeName","src":"6533:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6532:18:34"},"returnParameters":{"id":8586,"nodeType":"ParameterList","parameters":[],"src":"6570:0:34"},"scope":8652,"src":"6513:541:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8653,"src":"1242:5814:34","usedErrors":[]}],"src":"32:7025:34"},"id":34},"contracts/ChugSplashRegistryEvents.sol":{"ast":{"absolutePath":"contracts/ChugSplashRegistryEvents.sol","exportedSymbols":{"ChugSplashRegistryEvents":[8708]},"id":8709,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8654,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:35"},{"abstract":false,"baseContracts":[],"canonicalName":"ChugSplashRegistryEvents","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8708,"linearizedBaseContracts":[8708],"name":"ChugSplashRegistryEvents","nameLocation":"66:24:35","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8655,"nodeType":"StructuredDocumentation","src":"97:524:35","text":" @notice Emitted whenever registration is finalized for a given organization ID.\n @param organizationID Organization ID that was registered.\n @param managerImpl    Address of the initial ChugSplashManager implementation for this\n                       project.\n @param owner          Address of the initial owner of the project.\n @param caller         Address that finalized registration.\n @param retdata        Return data from the ChugSplashManager initializer."},"eventSelector":"34f01ac8697184bb2b594a525aaf915e28334b8ee9ce73d80e3d0d08fadcd341","id":8667,"name":"ChugSplashRegistrationFinalized","nameLocation":"632:31:35","nodeType":"EventDefinition","parameters":{"id":8666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8657,"indexed":true,"mutability":"mutable","name":"organizationID","nameLocation":"689:14:35","nodeType":"VariableDeclaration","scope":8667,"src":"673:30:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"673:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8659,"indexed":true,"mutability":"mutable","name":"managerImpl","nameLocation":"729:11:35","nodeType":"VariableDeclaration","scope":8667,"src":"713:27:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8658,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8661,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"758:5:35","nodeType":"VariableDeclaration","scope":8667,"src":"750:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8660,"name":"address","nodeType":"ElementaryTypeName","src":"750:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8663,"indexed":false,"mutability":"mutable","name":"caller","nameLocation":"781:6:35","nodeType":"VariableDeclaration","scope":8667,"src":"773:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8662,"name":"address","nodeType":"ElementaryTypeName","src":"773:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8665,"indexed":false,"mutability":"mutable","name":"retdata","nameLocation":"803:7:35","nodeType":"VariableDeclaration","scope":8667,"src":"797:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8664,"name":"bytes","nodeType":"ElementaryTypeName","src":"797:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"663:153:35"},"src":"626:191:35"},{"anonymous":false,"documentation":{"id":8668,"nodeType":"StructuredDocumentation","src":"823:500:35","text":" @notice Emitted whenever a ChugSplashManager contract announces an event on the registry. We\n         use this to avoid needing a complex indexing system when we're trying to find events\n         emitted by the various manager contracts.\n @param eventNameHash Hash of the name of the event being announced.\n @param manager       Address of the ChugSplashManagerProxy announcing an event.\n @param eventName     Name of the event being announced."},"eventSelector":"795f66a5da2addfeb09f1b32396ff2be31a38ebe0f85fae32133a226dbe065b3","id":8676,"name":"EventAnnounced","nameLocation":"1334:14:35","nodeType":"EventDefinition","parameters":{"id":8675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8670,"indexed":true,"mutability":"mutable","name":"eventNameHash","nameLocation":"1364:13:35","nodeType":"VariableDeclaration","scope":8676,"src":"1349:28:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8669,"name":"string","nodeType":"ElementaryTypeName","src":"1349:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8672,"indexed":true,"mutability":"mutable","name":"manager","nameLocation":"1395:7:35","nodeType":"VariableDeclaration","scope":8676,"src":"1379:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8671,"name":"address","nodeType":"ElementaryTypeName","src":"1379:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8674,"indexed":false,"mutability":"mutable","name":"eventName","nameLocation":"1411:9:35","nodeType":"VariableDeclaration","scope":8676,"src":"1404:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8673,"name":"string","nodeType":"ElementaryTypeName","src":"1404:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1348:73:35"},"src":"1328:94:35"},{"anonymous":false,"documentation":{"id":8677,"nodeType":"StructuredDocumentation","src":"1428:688:35","text":" @notice Emitted whenever a ChugSplashManager contract wishes to announce an event on the\n         registry, including a field for arbitrary data. We use this to avoid needing a\n         complex indexing system when we're trying to find events emitted by the various\n         manager contracts.\n @param eventNameHash Hash of the name of the event being announced.\n @param manager       Address of the ChugSplashManagerProxy announcing an event.\n @param dataHash      Hash of the extra data sent by the ChugSplashManager.\n @param eventName     Name of the event being announced.\n @param data          The extra data."},"eventSelector":"524ccd226c22cefbc337f02a4ec771a77e2df0925309645b4e79d650f11e2aa0","id":8689,"name":"EventAnnouncedWithData","nameLocation":"2127:22:35","nodeType":"EventDefinition","parameters":{"id":8688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8679,"indexed":true,"mutability":"mutable","name":"eventNameHash","nameLocation":"2174:13:35","nodeType":"VariableDeclaration","scope":8689,"src":"2159:28:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8678,"name":"string","nodeType":"ElementaryTypeName","src":"2159:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8681,"indexed":true,"mutability":"mutable","name":"manager","nameLocation":"2213:7:35","nodeType":"VariableDeclaration","scope":8689,"src":"2197:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8680,"name":"address","nodeType":"ElementaryTypeName","src":"2197:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8683,"indexed":true,"mutability":"mutable","name":"dataHash","nameLocation":"2244:8:35","nodeType":"VariableDeclaration","scope":8689,"src":"2230:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8682,"name":"bytes","nodeType":"ElementaryTypeName","src":"2230:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8685,"indexed":false,"mutability":"mutable","name":"eventName","nameLocation":"2269:9:35","nodeType":"VariableDeclaration","scope":8689,"src":"2262:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8684,"name":"string","nodeType":"ElementaryTypeName","src":"2262:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8687,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2294:4:35","nodeType":"VariableDeclaration","scope":8689,"src":"2288:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8686,"name":"bytes","nodeType":"ElementaryTypeName","src":"2288:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2149:155:35"},"src":"2121:184:35"},{"anonymous":false,"documentation":{"id":8690,"nodeType":"StructuredDocumentation","src":"2311:225:35","text":" @notice Emitted whenever a new contract kind is added.\n @param contractKindHash Hash representing the contract kind.\n @param adapter          Address of the adapter for the contract kind."},"eventSelector":"b2ae55a73412ceef617c2ecead73f8d660a4904740fa33d050ae5d8b517d7b47","id":8696,"name":"ContractKindAdded","nameLocation":"2547:17:35","nodeType":"EventDefinition","parameters":{"id":8695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8692,"indexed":false,"mutability":"mutable","name":"contractKindHash","nameLocation":"2573:16:35","nodeType":"VariableDeclaration","scope":8696,"src":"2565:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2565:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8694,"indexed":false,"mutability":"mutable","name":"adapter","nameLocation":"2599:7:35","nodeType":"VariableDeclaration","scope":8696,"src":"2591:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8693,"name":"address","nodeType":"ElementaryTypeName","src":"2591:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2564:43:35"},"src":"2541:67:35"},{"anonymous":false,"documentation":{"id":8697,"nodeType":"StructuredDocumentation","src":"2614:358:35","text":" @notice Emitted whenever a new ChugSplashManager implementation is added.\n @param major  Major version of the ChugSplashManager.\n @param minor     Minor version of the ChugSplashManager.\n @param patch    Patch version of the ChugSplashManager.\n @param manager Address of the ChugSplashManager implementation."},"eventSelector":"ad4f648400b850e9d053dbbd943dc1f16f1dd948913439a82886d60b875fa961","id":8707,"name":"VersionAdded","nameLocation":"2983:12:35","nodeType":"EventDefinition","parameters":{"id":8706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8699,"indexed":true,"mutability":"mutable","name":"major","nameLocation":"3021:5:35","nodeType":"VariableDeclaration","scope":8707,"src":"3005:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8698,"name":"uint256","nodeType":"ElementaryTypeName","src":"3005:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8701,"indexed":true,"mutability":"mutable","name":"minor","nameLocation":"3052:5:35","nodeType":"VariableDeclaration","scope":8707,"src":"3036:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8703,"indexed":true,"mutability":"mutable","name":"patch","nameLocation":"3083:5:35","nodeType":"VariableDeclaration","scope":8707,"src":"3067:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8702,"name":"uint256","nodeType":"ElementaryTypeName","src":"3067:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8705,"indexed":false,"mutability":"mutable","name":"manager","nameLocation":"3106:7:35","nodeType":"VariableDeclaration","scope":8707,"src":"3098:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8704,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2995:124:35"},"src":"2977:143:35"}],"scope":8709,"src":"57:3065:35","usedErrors":[]}],"src":"32:3091:35"},"id":35},"contracts/DefaultCreate3.sol":{"ast":{"absolutePath":"contracts/DefaultCreate3.sol","exportedSymbols":{"Bytes32AddressLib":[10300],"CREATE3":[10412],"DefaultCreate3":[8803],"ICreate3":[9805]},"id":8804,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8710,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:36"},{"absolutePath":"solmate/src/utils/CREATE3.sol","file":"solmate/src/utils/CREATE3.sol","id":8712,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8804,"sourceUnit":10413,"src":"58:56:36","symbolAliases":[{"foreign":{"id":8711,"name":"CREATE3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"67:7:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"solmate/src/utils/Bytes32AddressLib.sol","file":"solmate/src/utils/Bytes32AddressLib.sol","id":8714,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8804,"sourceUnit":10301,"src":"115:76:36","symbolAliases":[{"foreign":{"id":8713,"name":"Bytes32AddressLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10300,"src":"124:17:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/ICreate3.sol","file":"./interfaces/ICreate3.sol","id":8716,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8804,"sourceUnit":9806,"src":"192:53:36","symbolAliases":[{"foreign":{"id":8715,"name":"ICreate3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9805,"src":"201:8:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8718,"name":"ICreate3","nodeType":"IdentifierPath","referencedDeclaration":9805,"src":"481:8:36"},"id":8719,"nodeType":"InheritanceSpecifier","src":"481:8:36"}],"canonicalName":"DefaultCreate3","contractDependencies":[],"contractKind":"contract","documentation":{"id":8717,"nodeType":"StructuredDocumentation","src":"247:206:36","text":" @title DefaultCreate3\n @notice Default implementation of the ICreate3 interface. The default Create3 formula is used on\nEthereum and networks that are EVM-equivalent, or close to it."},"fullyImplemented":true,"id":8803,"linearizedBaseContracts":[8803,9805],"name":"DefaultCreate3","nameLocation":"463:14:36","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8722,"libraryName":{"id":8720,"name":"Bytes32AddressLib","nodeType":"IdentifierPath","referencedDeclaration":10300,"src":"502:17:36"},"nodeType":"UsingForDirective","src":"496:36:36","typeName":{"id":8721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"524:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"constant":true,"id":8725,"mutability":"constant","name":"PROXY_BYTECODE","nameLocation":"562:14:36","nodeType":"VariableDeclaration","scope":8803,"src":"538:93:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8723,"name":"bytes","nodeType":"ElementaryTypeName","src":"538:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"hexValue":"67363d3d37363d34f03d5260086018f3","id":8724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"579:52:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f","typeString":"literal_string hex\"67363d3d37363d34f03d5260086018f3\""}},"visibility":"internal"},{"constant":true,"id":8730,"mutability":"constant","name":"PROXY_BYTECODE_HASH","nameLocation":"664:19:36","nodeType":"VariableDeclaration","scope":8803,"src":"638:73:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"638:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"id":8728,"name":"PROXY_BYTECODE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"696:14:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8727,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"686:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"686:25:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"baseFunctions":[9788],"body":{"id":8749,"nodeType":"Block","src":"901:68:36","statements":[{"expression":{"arguments":[{"id":8744,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"933:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8745,"name":"_creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"940:13:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8746,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8737,"src":"955:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8742,"name":"CREATE3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"918:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CREATE3_$10412_$","typeString":"type(library CREATE3)"}},"id":8743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":10372,"src":"918:14:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (bytes32,bytes memory,uint256) returns (address)"}},"id":8747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"918:44:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8741,"id":8748,"nodeType":"Return","src":"911:51:36"}]},"documentation":{"id":8731,"nodeType":"StructuredDocumentation","src":"718:39:36","text":" @inheritdoc ICreate3"},"functionSelector":"c7aeef0f","id":8750,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"771:6:36","nodeType":"FunctionDefinition","parameters":{"id":8738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"_salt","nameLocation":"795:5:36","nodeType":"VariableDeclaration","scope":8750,"src":"787:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"787:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8735,"mutability":"mutable","name":"_creationCode","nameLocation":"823:13:36","nodeType":"VariableDeclaration","scope":8750,"src":"810:26:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8734,"name":"bytes","nodeType":"ElementaryTypeName","src":"810:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8737,"mutability":"mutable","name":"_value","nameLocation":"854:6:36","nodeType":"VariableDeclaration","scope":8750,"src":"846:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"777:89:36"},"returnParameters":{"id":8741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8740,"mutability":"mutable","name":"deployed","nameLocation":"891:8:36","nodeType":"VariableDeclaration","scope":8750,"src":"883:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8739,"name":"address","nodeType":"ElementaryTypeName","src":"883:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"882:18:36"},"scope":8803,"src":"762:207:36","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9795],"body":{"id":8763,"nodeType":"Block","src":"1086:50:36","statements":[{"expression":{"arguments":[{"id":8760,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8753,"src":"1123:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8758,"name":"CREATE3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"1103:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CREATE3_$10412_$","typeString":"type(library CREATE3)"}},"id":8759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getDeployed","nodeType":"MemberAccess","referencedDeclaration":10411,"src":"1103:19:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":8761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1103:26:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8757,"id":8762,"nodeType":"Return","src":"1096:33:36"}]},"documentation":{"id":8751,"nodeType":"StructuredDocumentation","src":"975:39:36","text":" @inheritdoc ICreate3"},"functionSelector":"21f8a721","id":8764,"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"1028:10:36","nodeType":"FunctionDefinition","parameters":{"id":8754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8753,"mutability":"mutable","name":"_salt","nameLocation":"1047:5:36","nodeType":"VariableDeclaration","scope":8764,"src":"1039:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1039:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1038:15:36"},"returnParameters":{"id":8757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8764,"src":"1077:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8755,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1076:9:36"},"scope":8803,"src":"1019:117:36","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[9804],"body":{"id":8801,"nodeType":"Block","src":"1260:781:36","statements":[{"assignments":[8774],"declarations":[{"constant":false,"id":8774,"mutability":"mutable","name":"proxy","nameLocation":"1278:5:36","nodeType":"VariableDeclaration","scope":8801,"src":"1270:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8773,"name":"address","nodeType":"ElementaryTypeName","src":"1270:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8789,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30784646","id":8780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1377:4:36","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":8779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1370:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8778,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1370:6:36","typeDescriptions":{}}},"id":8781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1370:12:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":8782,"name":"_deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8768,"src":"1428:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8783,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8766,"src":"1480:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8784,"name":"PROXY_BYTECODE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8730,"src":"1537:19:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8776,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1309:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1309:16:36","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1309:261:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8775,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1286:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1286:294:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fromLast20Bytes","nodeType":"MemberAccess","referencedDeclaration":10283,"src":"1286:310:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (address)"}},"id":8788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1286:312:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1270:328:36"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"hexValue":"d694","id":8793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1883:10:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf","typeString":"literal_string hex\"d694\""},"value":"֔"},{"id":8794,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8774,"src":"1915:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"01","id":8795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1942:7:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf","typeString":"literal_string hex\"d694\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""}],"expression":{"id":8791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1655:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1655:16:36","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1655:347:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8790,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1628:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1628:388:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fromLast20Bytes","nodeType":"MemberAccess","referencedDeclaration":10283,"src":"1628:404:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (address)"}},"id":8799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1628:406:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8772,"id":8800,"nodeType":"Return","src":"1609:425:36"}]},"functionSelector":"e4e13140","id":8802,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressFromDeployer","nameLocation":"1151:22:36","nodeType":"FunctionDefinition","parameters":{"id":8769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8766,"mutability":"mutable","name":"_salt","nameLocation":"1191:5:36","nodeType":"VariableDeclaration","scope":8802,"src":"1183:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1183:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8768,"mutability":"mutable","name":"_deployer","nameLocation":"1214:9:36","nodeType":"VariableDeclaration","scope":8802,"src":"1206:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8767,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1173:56:36"},"returnParameters":{"id":8772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8802,"src":"1251:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8770,"name":"address","nodeType":"ElementaryTypeName","src":"1251:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1250:9:36"},"scope":8803,"src":"1142:899:36","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":8804,"src":"454:1589:36","usedErrors":[]}],"src":"32:2012:36"},"id":36},"contracts/DefaultGasPriceCalculator.sol":{"ast":{"absolutePath":"contracts/DefaultGasPriceCalculator.sol","exportedSymbols":{"DefaultGasPriceCalculator":[8821],"IGasPriceCalculator":[9833]},"id":8822,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8805,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:37"},{"absolutePath":"contracts/interfaces/IGasPriceCalculator.sol","file":"./interfaces/IGasPriceCalculator.sol","id":8807,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8822,"sourceUnit":9834,"src":"58:75:37","symbolAliases":[{"foreign":{"id":8806,"name":"IGasPriceCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9833,"src":"67:19:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8809,"name":"IGasPriceCalculator","nodeType":"IdentifierPath","referencedDeclaration":9833,"src":"386:19:37"},"id":8810,"nodeType":"InheritanceSpecifier","src":"386:19:37"}],"canonicalName":"DefaultGasPriceCalculator","contractDependencies":[],"contractKind":"contract","documentation":{"id":8808,"nodeType":"StructuredDocumentation","src":"135:212:37","text":" @title DefaultGasPriceCalculator\n @notice Default implementation of the IGasPriceCalculator interface. This is used on Ethereum and\nnetworks that have the same semantics for `tx.gasprice`."},"fullyImplemented":true,"id":8821,"linearizedBaseContracts":[8821,9833],"name":"DefaultGasPriceCalculator","nameLocation":"357:25:37","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[9832],"body":{"id":8819,"nodeType":"Block","src":"522:35:37","statements":[{"expression":{"expression":{"id":8816,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"539:2:37","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":8817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gasprice","nodeType":"MemberAccess","src":"539:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8815,"id":8818,"nodeType":"Return","src":"532:18:37"}]},"documentation":{"id":8811,"nodeType":"StructuredDocumentation","src":"412:50:37","text":" @inheritdoc IGasPriceCalculator"},"functionSelector":"455259cb","id":8820,"implemented":true,"kind":"function","modifiers":[],"name":"getGasPrice","nameLocation":"476:11:37","nodeType":"FunctionDefinition","parameters":{"id":8812,"nodeType":"ParameterList","parameters":[],"src":"487:2:37"},"returnParameters":{"id":8815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8820,"src":"513:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8813,"name":"uint256","nodeType":"ElementaryTypeName","src":"513:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"512:9:37"},"scope":8821,"src":"467:90:37","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8822,"src":"348:211:37","usedErrors":[]}],"src":"32:528:37"},"id":37},"contracts/Import.sol":{"ast":{"absolutePath":"contracts/Import.sol","exportedSymbols":{"Forwarder":[5172]},"id":8826,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8823,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:38"},{"absolutePath":"@thirdweb-dev/contracts/forwarder/Forwarder.sol","file":"@thirdweb-dev/contracts/forwarder/Forwarder.sol","id":8825,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8826,"sourceUnit":5173,"src":"58:76:38","symbolAliases":[{"foreign":{"id":8824,"name":"Forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"67:9:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"32:103:38"},"id":38},"contracts/ManagedService.sol":{"ast":{"absolutePath":"contracts/ManagedService.sol","exportedSymbols":{"AccessControl":[2111],"ManagedService":[8984]},"id":8985,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8827,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:39"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":8829,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8985,"sourceUnit":2112,"src":"58:81:39","symbolAliases":[{"foreign":{"id":8828,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2111,"src":"67:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8831,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":2111,"src":"461:13:39"},"id":8832,"nodeType":"InheritanceSpecifier","src":"461:13:39"}],"canonicalName":"ManagedService","contractDependencies":[],"contractKind":"contract","documentation":{"id":8830,"nodeType":"StructuredDocumentation","src":"141:292:39","text":" @title ManagedService\n @notice Contract controlled by the ChugSplash managed service. This contract allows the managed\nservice to remotely execute deployments, propose deployments, and collect the protocol's fee.\nUsers can opt in to this functionality if they choose to do so."},"fullyImplemented":true,"id":8984,"linearizedBaseContracts":[8984,2111,3995,4007,2184,2843],"name":"ManagedService","nameLocation":"443:14:39","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"774237fc","id":8837,"mutability":"constant","name":"CALLER_ROLE","nameLocation":"505:11:39","nodeType":"VariableDeclaration","scope":8984,"src":"481:62:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"481:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"43414c4c45525f524f4c45","id":8835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"529:13:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_843c3a00fa95510a35f425371231fd3fe4642e719cb4595160763d6d02594b50","typeString":"literal_string \"CALLER_ROLE\""},"value":"CALLER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_843c3a00fa95510a35f425371231fd3fe4642e719cb4595160763d6d02594b50","typeString":"literal_string \"CALLER_ROLE\""}],"id":8834,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"519:9:39","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"519:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"documentation":{"id":8838,"nodeType":"StructuredDocumentation","src":"550:83:39","text":" @notice Role required to collect the protocol creator's payment."},"id":8843,"mutability":"constant","name":"PROTOCOL_PAYMENT_RECIPIENT_ROLE","nameLocation":"664:31:39","nodeType":"VariableDeclaration","scope":8984,"src":"638:112:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"638:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50524f544f434f4c5f5041594d454e545f524543495049454e545f524f4c45","id":8841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"716:33:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd93813d0a55b6e29353a55dc690fc4552fc81f701e373994ed3e0ce53a68031","typeString":"literal_string \"PROTOCOL_PAYMENT_RECIPIENT_ROLE\""},"value":"PROTOCOL_PAYMENT_RECIPIENT_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bd93813d0a55b6e29353a55dc690fc4552fc81f701e373994ed3e0ce53a68031","typeString":"literal_string \"PROTOCOL_PAYMENT_RECIPIENT_ROLE\""}],"id":8840,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"706:9:39","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"706:44:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"anonymous":false,"eventSelector":"c2822ad937e2e42263be82e6c6bd0969b5d174e5a131d5c6372d47cb54cbbce7","id":8851,"name":"ExecutedCall","nameLocation":"763:12:39","nodeType":"EventDefinition","parameters":{"id":8850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8845,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"792:4:39","nodeType":"VariableDeclaration","scope":8851,"src":"776:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8844,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8847,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"814:2:39","nodeType":"VariableDeclaration","scope":8851,"src":"798:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8846,"name":"address","nodeType":"ElementaryTypeName","src":"798:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8849,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"826:5:39","nodeType":"VariableDeclaration","scope":8851,"src":"818:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8848,"name":"uint256","nodeType":"ElementaryTypeName","src":"818:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"775:57:39"},"src":"757:76:39"},{"anonymous":false,"documentation":{"id":8852,"nodeType":"StructuredDocumentation","src":"839:205:39","text":" @notice Emitted when a protocol payment recipient claims a payment.\n @param recipient The recipient that withdrew the funds.\n @param amount    Amount of ETH withdrawn."},"eventSelector":"95c4271d7d135112b6c5b35869852607dbafbfab924b79a54d15a44039446107","id":8858,"name":"ProtocolPaymentClaimed","nameLocation":"1055:22:39","nodeType":"EventDefinition","parameters":{"id":8857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8854,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"1094:9:39","nodeType":"VariableDeclaration","scope":8858,"src":"1078:25:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8853,"name":"address","nodeType":"ElementaryTypeName","src":"1078:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8856,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1113:6:39","nodeType":"VariableDeclaration","scope":8858,"src":"1105:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8855,"name":"uint256","nodeType":"ElementaryTypeName","src":"1105:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1077:43:39"},"src":"1049:72:39"},{"documentation":{"id":8859,"nodeType":"StructuredDocumentation","src":"1127:85:39","text":" @notice Reverts if the caller is not a protocol payment recipient."},"errorSelector":"bf7ee2a3","id":8861,"name":"CallerIsNotProtocolPaymentRecipient","nameLocation":"1223:35:39","nodeType":"ErrorDefinition","parameters":{"id":8860,"nodeType":"ParameterList","parameters":[],"src":"1258:2:39"},"src":"1217:44:39"},{"body":{"id":8875,"nodeType":"Block","src":"1457:47:39","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1486:1:39","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":8869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1478:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1478:7:39","typeDescriptions":{}}},"id":8871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1478:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8872,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8864,"src":"1490:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8867,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"1467:10:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1467:30:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8874,"nodeType":"ExpressionStatement","src":"1467:30:39"}]},"documentation":{"id":8862,"nodeType":"StructuredDocumentation","src":"1267:157:39","text":" @param _owner The address that will be granted the `DEFAULT_ADMIN_ROLE`. This address is the\nmultisig owned by the ChugSplash team."},"id":8876,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8864,"mutability":"mutable","name":"_owner","nameLocation":"1449:6:39","nodeType":"VariableDeclaration","scope":8876,"src":"1441:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8863,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1440:16:39"},"returnParameters":{"id":8866,"nodeType":"ParameterList","parameters":[],"src":"1457:0:39"},"scope":8984,"src":"1429:75:39","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8916,"nodeType":"Block","src":"1908:231:39","statements":[{"eventCall":{"arguments":[{"expression":{"id":8892,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1936:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1936:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8894,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8879,"src":"1948:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8895,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8883,"src":"1953:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8891,"name":"ExecutedCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8851,"src":"1923:12:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1923:37:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8897,"nodeType":"EmitStatement","src":"1918:42:39"},{"assignments":[8899,8901],"declarations":[{"constant":false,"id":8899,"mutability":"mutable","name":"success","nameLocation":"1976:7:39","nodeType":"VariableDeclaration","scope":8916,"src":"1971:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8898,"name":"bool","nodeType":"ElementaryTypeName","src":"1971:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8901,"mutability":"mutable","name":"returnData","nameLocation":"1998:10:39","nodeType":"VariableDeclaration","scope":8916,"src":"1985:23:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8900,"name":"bytes","nodeType":"ElementaryTypeName","src":"1985:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8908,"initialValue":{"arguments":[{"id":8906,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"2038:5:39","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":8902,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8879,"src":"2012:3:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2012:8:39","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":8905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":8904,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8883,"src":"2029:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2012:25:39","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":8907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2012:32:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1970:74:39"},{"expression":{"arguments":[{"id":8910,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8899,"src":"2062:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5065726d697373696f6e656443616c6c65723a2063616c6c206661696c6564","id":8911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2071:33:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_01ef1fa443964e09936b26e0536063ee06c2ed866b4517b5e8e512b5dd110dba","typeString":"literal_string \"PermissionedCaller: call failed\""},"value":"PermissionedCaller: call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01ef1fa443964e09936b26e0536063ee06c2ed866b4517b5e8e512b5dd110dba","typeString":"literal_string \"PermissionedCaller: call failed\""}],"id":8909,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2054:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2054:51:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8913,"nodeType":"ExpressionStatement","src":"2054:51:39"},{"expression":{"id":8914,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8901,"src":"2122:10:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8890,"id":8915,"nodeType":"Return","src":"2115:17:39"}]},"documentation":{"id":8877,"nodeType":"StructuredDocumentation","src":"1510:231:39","text":" @notice Executes an arbitrary call to any contract. This is primarily used to claim\n         organizations on behalf of users.\n @param _to Address of target contract.\n @param _data The calldata."},"functionSelector":"54132d78","id":8917,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8886,"name":"CALLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8837,"src":"1872:11:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8887,"kind":"modifierInvocation","modifierName":{"id":8885,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":1834,"src":"1863:8:39"},"nodeType":"ModifierInvocation","src":"1863:21:39"}],"name":"executeCall","nameLocation":"1755:11:39","nodeType":"FunctionDefinition","parameters":{"id":8884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8879,"mutability":"mutable","name":"_to","nameLocation":"1784:3:39","nodeType":"VariableDeclaration","scope":8917,"src":"1776:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8878,"name":"address","nodeType":"ElementaryTypeName","src":"1776:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8881,"mutability":"mutable","name":"_data","nameLocation":"1810:5:39","nodeType":"VariableDeclaration","scope":8917,"src":"1797:18:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8880,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8883,"mutability":"mutable","name":"_value","nameLocation":"1833:6:39","nodeType":"VariableDeclaration","scope":8917,"src":"1825:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1825:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1766:79:39"},"returnParameters":{"id":8890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8917,"src":"1894:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8888,"name":"bytes","nodeType":"ElementaryTypeName","src":"1894:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1893:14:39"},"scope":8984,"src":"1746:393:39","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":8977,"nodeType":"Block","src":"2351:598:39","statements":[{"condition":{"id":8928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2365:53:39","subExpression":{"arguments":[{"id":8924,"name":"PROTOCOL_PAYMENT_RECIPIENT_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"2374:31:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":8925,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2407:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2407:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8923,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"2366:7:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":8927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2366:52:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8933,"nodeType":"IfStatement","src":"2361:128:39","trueBody":{"id":8932,"nodeType":"Block","src":"2420:69:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8929,"name":"CallerIsNotProtocolPaymentRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8861,"src":"2441:35:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2441:37:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8931,"nodeType":"RevertStatement","src":"2434:44:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8934,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8920,"src":"2502:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":8937,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2520:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_ManagedService_$8984","typeString":"contract ManagedService"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ManagedService_$8984","typeString":"contract ManagedService"}],"id":8936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8935,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:39","typeDescriptions":{}}},"id":8938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2512:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2512:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2502:31:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8946,"nodeType":"IfStatement","src":"2498:135:39","trueBody":{"id":8945,"nodeType":"Block","src":"2535:98:39","statements":[{"expression":{"arguments":[{"hexValue":"4d616e61676564536572766963653a20496e73756666696369656e742066756e647320746f2077697468647261772070726f746f636f6c207061796d656e74","id":8942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2556:65:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_07ccc52a2421159a81cb1efd13f66c0824b69ef4653e7966f225cd9e92086f45","typeString":"literal_string \"ManagedService: Insufficient funds to withdraw protocol payment\""},"value":"ManagedService: Insufficient funds to withdraw protocol payment"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07ccc52a2421159a81cb1efd13f66c0824b69ef4653e7966f225cd9e92086f45","typeString":"literal_string \"ManagedService: Insufficient funds to withdraw protocol payment\""}],"id":8941,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2549:6:39","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2549:73:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8944,"nodeType":"ExpressionStatement","src":"2549:73:39"}]}},{"eventCall":{"arguments":[{"expression":{"id":8948,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2671:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2671:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8950,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8920,"src":"2683:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8947,"name":"ProtocolPaymentClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8858,"src":"2648:22:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2648:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8952,"nodeType":"EmitStatement","src":"2643:48:39"},{"assignments":[8954,null],"declarations":[{"constant":false,"id":8954,"mutability":"mutable","name":"success","nameLocation":"2764:7:39","nodeType":"VariableDeclaration","scope":8977,"src":"2759:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8953,"name":"bool","nodeType":"ElementaryTypeName","src":"2759:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":8968,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":8965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2830:1:39","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":8964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2820:9:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8963,"name":"bytes","nodeType":"ElementaryTypeName","src":"2824:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2820:12:39","tryCall":false,"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":{"arguments":[{"expression":{"id":8957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2785:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2785:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2777:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":8955,"name":"address","nodeType":"ElementaryTypeName","src":"2777:8:39","stateMutability":"payable","typeDescriptions":{}}},"id":8959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2777:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":8960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2777:24:39","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":8962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":8961,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8920,"src":"2810:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2777:42:39","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":8967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2777:56:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2758:75:39"},{"condition":{"id":8970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2847:8:39","subExpression":{"id":8969,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"2848:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8976,"nodeType":"IfStatement","src":"2843:100:39","trueBody":{"id":8975,"nodeType":"Block","src":"2857:86:39","statements":[{"expression":{"arguments":[{"hexValue":"4d616e61676564536572766963653a204661696c656420746f2077697468647261772070726f746f636f6c207061796d656e74","id":8972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2878:53:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_d16a395c54de90dc2892c7f651ed507b1ada33e4854aeca7ae6d40f1efb14a76","typeString":"literal_string \"ManagedService: Failed to withdraw protocol payment\""},"value":"ManagedService: Failed to withdraw protocol payment"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d16a395c54de90dc2892c7f651ed507b1ada33e4854aeca7ae6d40f1efb14a76","typeString":"literal_string \"ManagedService: Failed to withdraw protocol payment\""}],"id":8971,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2871:6:39","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2871:61:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8974,"nodeType":"ExpressionStatement","src":"2871:61:39"}]}}]},"documentation":{"id":8918,"nodeType":"StructuredDocumentation","src":"2145:145:39","text":" @notice Allows the protocol creators to claim their royalty, which is only earned during\nremotely executed deployments."},"functionSelector":"b74e9e3b","id":8978,"implemented":true,"kind":"function","modifiers":[],"name":"claimProtocolPayment","nameLocation":"2304:20:39","nodeType":"FunctionDefinition","parameters":{"id":8921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8920,"mutability":"mutable","name":"_amount","nameLocation":"2333:7:39","nodeType":"VariableDeclaration","scope":8978,"src":"2325:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2325:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2324:17:39"},"returnParameters":{"id":8922,"nodeType":"ParameterList","parameters":[],"src":"2351:0:39"},"scope":8984,"src":"2295:654:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8982,"nodeType":"Block","src":"3054:2:39","statements":[]},"documentation":{"id":8979,"nodeType":"StructuredDocumentation","src":"2955:67:39","text":" @notice Allows for this contract to receive ETH."},"id":8983,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8980,"nodeType":"ParameterList","parameters":[],"src":"3034:2:39"},"returnParameters":{"id":8981,"nodeType":"ParameterList","parameters":[],"src":"3054:0:39"},"scope":8984,"src":"3027:29:39","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":8985,"src":"434:2624:39","usedErrors":[8861]}],"src":"32:3027:39"},"id":39},"contracts/Semver.sol":{"ast":{"absolutePath":"contracts/Semver.sol","exportedSymbols":{"Semver":[9036],"Version":[5567]},"id":9037,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8986,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:40"},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"./ChugSplashDataTypes.sol","id":8988,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9037,"sourceUnit":5617,"src":"57:52:40","symbolAliases":[{"foreign":{"id":8987,"name":"Version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"66:7:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Semver","contractDependencies":[],"contractKind":"contract","documentation":{"id":8989,"nodeType":"StructuredDocumentation","src":"111:95:40","text":" @title Semver\n @notice Semver is a simple contract for managing contract versions."},"fullyImplemented":true,"id":9036,"linearizedBaseContracts":[9036],"name":"Semver","nameLocation":"216:6:40","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":8990,"nodeType":"StructuredDocumentation","src":"229:59:40","text":" @notice Contract version number (major)."},"id":8992,"mutability":"immutable","name":"MAJOR_VERSION","nameLocation":"319:13:40","nodeType":"VariableDeclaration","scope":9036,"src":"293:39:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8991,"name":"uint256","nodeType":"ElementaryTypeName","src":"293:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"documentation":{"id":8993,"nodeType":"StructuredDocumentation","src":"339:59:40","text":" @notice Contract version number (minor)."},"id":8995,"mutability":"immutable","name":"MINOR_VERSION","nameLocation":"429:13:40","nodeType":"VariableDeclaration","scope":9036,"src":"403:39:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8994,"name":"uint256","nodeType":"ElementaryTypeName","src":"403:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"documentation":{"id":8996,"nodeType":"StructuredDocumentation","src":"449:59:40","text":" @notice Contract version number (patch)."},"id":8998,"mutability":"immutable","name":"PATCH_VERSION","nameLocation":"539:13:40","nodeType":"VariableDeclaration","scope":9036,"src":"513:39:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8997,"name":"uint256","nodeType":"ElementaryTypeName","src":"513:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":9020,"nodeType":"Block","src":"770:103:40","statements":[{"expression":{"id":9010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9008,"name":"MAJOR_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8992,"src":"780:13:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9009,"name":"_major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9001,"src":"796:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"780:22:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9011,"nodeType":"ExpressionStatement","src":"780:22:40"},{"expression":{"id":9014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9012,"name":"MINOR_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8995,"src":"812:13:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9013,"name":"_minor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9003,"src":"828:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"812:22:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9015,"nodeType":"ExpressionStatement","src":"812:22:40"},{"expression":{"id":9018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9016,"name":"PATCH_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8998,"src":"844:13:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9017,"name":"_patch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"860:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"844:22:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9019,"nodeType":"ExpressionStatement","src":"844:22:40"}]},"documentation":{"id":8999,"nodeType":"StructuredDocumentation","src":"559:146:40","text":" @param _major Version number (major).\n @param _minor Version number (minor).\n @param _patch Version number (patch)."},"id":9021,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9001,"mutability":"mutable","name":"_major","nameLocation":"730:6:40","nodeType":"VariableDeclaration","scope":9021,"src":"722:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9000,"name":"uint256","nodeType":"ElementaryTypeName","src":"722:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9003,"mutability":"mutable","name":"_minor","nameLocation":"746:6:40","nodeType":"VariableDeclaration","scope":9021,"src":"738:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9002,"name":"uint256","nodeType":"ElementaryTypeName","src":"738:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9005,"mutability":"mutable","name":"_patch","nameLocation":"762:6:40","nodeType":"VariableDeclaration","scope":9021,"src":"754:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"754:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"721:48:40"},"returnParameters":{"id":9007,"nodeType":"ParameterList","parameters":[],"src":"770:0:40"},"scope":9036,"src":"710:163:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9034,"nodeType":"Block","src":"1067:76:40","statements":[{"expression":{"arguments":[{"id":9029,"name":"MAJOR_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8992,"src":"1092:13:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9030,"name":"MINOR_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8995,"src":"1107:13:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9031,"name":"PATCH_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8998,"src":"1122:13:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9028,"name":"Version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"1084:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Version_$5567_storage_ptr_$","typeString":"type(struct Version storage pointer)"}},"id":9032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1084:52:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},"functionReturnParameters":9027,"id":9033,"nodeType":"Return","src":"1077:59:40"}]},"documentation":{"id":9022,"nodeType":"StructuredDocumentation","src":"879:127:40","text":" @notice Returns the full semver contract version.\n @return Semver contract version as a struct."},"functionSelector":"54fd4d50","id":9035,"implemented":true,"kind":"function","modifiers":[],"name":"version","nameLocation":"1020:7:40","nodeType":"FunctionDefinition","parameters":{"id":9023,"nodeType":"ParameterList","parameters":[],"src":"1027:2:40"},"returnParameters":{"id":9027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9035,"src":"1051:14:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version"},"typeName":{"id":9025,"nodeType":"UserDefinedTypeName","pathNode":{"id":9024,"name":"Version","nodeType":"IdentifierPath","referencedDeclaration":5567,"src":"1051:7:40"},"referencedDeclaration":5567,"src":"1051:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"}},"visibility":"internal"}],"src":"1050:16:40"},"scope":9036,"src":"1011:132:40","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":9037,"src":"207:938:40","usedErrors":[]}],"src":"32:1114:40"},"id":40},"contracts/adapters/DefaultAdapter.sol":{"ast":{"absolutePath":"contracts/adapters/DefaultAdapter.sol","exportedSymbols":{"DefaultAdapter":[9140],"IProxyAdapter":[9887],"IProxyUpdater":[9901],"Proxy":[573]},"id":9141,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9038,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:41"},{"absolutePath":"contracts/interfaces/IProxyAdapter.sol","file":"../interfaces/IProxyAdapter.sol","id":9040,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9141,"sourceUnit":9888,"src":"58:64:41","symbolAliases":[{"foreign":{"id":9039,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"67:13:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IProxyUpdater.sol","file":"../interfaces/IProxyUpdater.sol","id":9042,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9141,"sourceUnit":9902,"src":"123:64:41","symbolAliases":[{"foreign":{"id":9041,"name":"IProxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9901,"src":"132:13:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","file":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","id":9044,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9141,"sourceUnit":574,"src":"188:86:41","symbolAliases":[{"foreign":{"id":9043,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"197:5:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9046,"name":"IProxyAdapter","nodeType":"IdentifierPath","referencedDeclaration":9887,"src":"406:13:41"},"id":9047,"nodeType":"InheritanceSpecifier","src":"406:13:41"}],"canonicalName":"DefaultAdapter","contractDependencies":[],"contractKind":"contract","documentation":{"id":9045,"nodeType":"StructuredDocumentation","src":"276:102:41","text":" @title DefaultAdapter\n @notice Adapter for the default EIP-1967 proxy used by ChugSplash."},"fullyImplemented":true,"id":9140,"linearizedBaseContracts":[9140,9887],"name":"DefaultAdapter","nameLocation":"388:14:41","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":9048,"nodeType":"StructuredDocumentation","src":"426:137:41","text":" @notice Address of the ProxyUpdater contract that will be set as the proxy's implementation\nduring the deployment."},"functionSelector":"7bafa3c7","id":9050,"mutability":"immutable","name":"proxyUpdater","nameLocation":"593:12:41","nodeType":"VariableDeclaration","scope":9140,"src":"568:37:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9049,"name":"address","nodeType":"ElementaryTypeName","src":"568:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":9070,"nodeType":"Block","src":"729:139:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9057,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9053,"src":"747:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"772:1:41","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":9059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"764:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9058,"name":"address","nodeType":"ElementaryTypeName","src":"764:7:41","typeDescriptions":{}}},"id":9061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"764:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"747:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"44656661756c74416461707465723a20757064617465722063616e6e6f742062652061646472657373283029","id":9063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"776:46:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b8ce8e8606cf7daef07b554bdecece069ffa7e6e2f27e320724f35a1b4932db","typeString":"literal_string \"DefaultAdapter: updater cannot be address(0)\""},"value":"DefaultAdapter: updater cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2b8ce8e8606cf7daef07b554bdecece069ffa7e6e2f27e320724f35a1b4932db","typeString":"literal_string \"DefaultAdapter: updater cannot be address(0)\""}],"id":9056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"739:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"739:84:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9065,"nodeType":"ExpressionStatement","src":"739:84:41"},{"expression":{"id":9068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9066,"name":"proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9050,"src":"833:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9067,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9053,"src":"848:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"833:28:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9069,"nodeType":"ExpressionStatement","src":"833:28:41"}]},"documentation":{"id":9051,"nodeType":"StructuredDocumentation","src":"612:77:41","text":" @param _proxyUpdater Address of the ProxyUpdater contract."},"id":9071,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9053,"mutability":"mutable","name":"_proxyUpdater","nameLocation":"714:13:41","nodeType":"VariableDeclaration","scope":9071,"src":"706:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9052,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"705:23:41"},"returnParameters":{"id":9055,"nodeType":"ParameterList","parameters":[],"src":"729:0:41"},"scope":9140,"src":"694:174:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9858],"body":{"id":9084,"nodeType":"Block","src":"981:54:41","statements":[{"expression":{"arguments":[{"id":9081,"name":"proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9050,"src":"1015:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9078,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9074,"src":"997:6:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9077,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"991:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$573_$","typeString":"type(contract Proxy)"}},"id":9079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"991:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$573","typeString":"contract Proxy"}},"id":9080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":425,"src":"991:23:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"991:37:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9083,"nodeType":"ExpressionStatement","src":"991:37:41"}]},"documentation":{"id":9072,"nodeType":"StructuredDocumentation","src":"874:44:41","text":" @inheritdoc IProxyAdapter"},"functionSelector":"479aa927","id":9085,"implemented":true,"kind":"function","modifiers":[],"name":"initiateUpgrade","nameLocation":"932:15:41","nodeType":"FunctionDefinition","parameters":{"id":9075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9074,"mutability":"mutable","name":"_proxy","nameLocation":"964:6:41","nodeType":"VariableDeclaration","scope":9085,"src":"948:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9073,"name":"address","nodeType":"ElementaryTypeName","src":"948:15:41","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"947:24:41"},"returnParameters":{"id":9076,"nodeType":"ParameterList","parameters":[],"src":"981:0:41"},"scope":9140,"src":"923:112:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9866],"body":{"id":9100,"nodeType":"Block","src":"1173:57:41","statements":[{"expression":{"arguments":[{"id":9097,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9090,"src":"1207:15:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9094,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9088,"src":"1189:6:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9093,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"1183:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$573_$","typeString":"type(contract Proxy)"}},"id":9095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$573","typeString":"contract Proxy"}},"id":9096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":425,"src":"1183:23:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1183:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9099,"nodeType":"ExpressionStatement","src":"1183:40:41"}]},"documentation":{"id":9086,"nodeType":"StructuredDocumentation","src":"1041:44:41","text":" @inheritdoc IProxyAdapter"},"functionSelector":"192957c8","id":9101,"implemented":true,"kind":"function","modifiers":[],"name":"finalizeUpgrade","nameLocation":"1099:15:41","nodeType":"FunctionDefinition","parameters":{"id":9091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9088,"mutability":"mutable","name":"_proxy","nameLocation":"1131:6:41","nodeType":"VariableDeclaration","scope":9101,"src":"1115:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9087,"name":"address","nodeType":"ElementaryTypeName","src":"1115:15:41","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9090,"mutability":"mutable","name":"_implementation","nameLocation":"1147:15:41","nodeType":"VariableDeclaration","scope":9101,"src":"1139:23:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9089,"name":"address","nodeType":"ElementaryTypeName","src":"1139:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1114:49:41"},"returnParameters":{"id":9092,"nodeType":"ParameterList","parameters":[],"src":"1173:0:41"},"scope":9140,"src":"1090:140:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9878],"body":{"id":9122,"nodeType":"Block","src":"1426:72:41","statements":[{"expression":{"arguments":[{"id":9117,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1469:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9118,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9108,"src":"1475:7:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9119,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9110,"src":"1484:6:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":9114,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9104,"src":"1450:6:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9113,"name":"IProxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9901,"src":"1436:13:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyUpdater_$9901_$","typeString":"type(contract IProxyUpdater)"}},"id":9115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1436:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProxyUpdater_$9901","typeString":"contract IProxyUpdater"}},"id":9116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setStorage","nodeType":"MemberAccess","referencedDeclaration":9900,"src":"1436:32:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint8,bytes memory) external"}},"id":9120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1436:55:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9121,"nodeType":"ExpressionStatement","src":"1436:55:41"}]},"documentation":{"id":9102,"nodeType":"StructuredDocumentation","src":"1236:44:41","text":" @inheritdoc IProxyAdapter"},"functionSelector":"9bc6ee9a","id":9123,"implemented":true,"kind":"function","modifiers":[],"name":"setStorage","nameLocation":"1294:10:41","nodeType":"FunctionDefinition","parameters":{"id":9111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9104,"mutability":"mutable","name":"_proxy","nameLocation":"1330:6:41","nodeType":"VariableDeclaration","scope":9123,"src":"1314:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9103,"name":"address","nodeType":"ElementaryTypeName","src":"1314:15:41","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9106,"mutability":"mutable","name":"_key","nameLocation":"1354:4:41","nodeType":"VariableDeclaration","scope":9123,"src":"1346:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1346:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9108,"mutability":"mutable","name":"_offset","nameLocation":"1374:7:41","nodeType":"VariableDeclaration","scope":9123,"src":"1368:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9107,"name":"uint8","nodeType":"ElementaryTypeName","src":"1368:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9110,"mutability":"mutable","name":"_value","nameLocation":"1404:6:41","nodeType":"VariableDeclaration","scope":9123,"src":"1391:19:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9109,"name":"bytes","nodeType":"ElementaryTypeName","src":"1391:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1304:112:41"},"returnParameters":{"id":9112,"nodeType":"ParameterList","parameters":[],"src":"1426:0:41"},"scope":9140,"src":"1285:213:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9886],"body":{"id":9138,"nodeType":"Block","src":"1631:53:41","statements":[{"expression":{"arguments":[{"id":9135,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"1667:9:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9132,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9126,"src":"1647:6:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9131,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"1641:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$573_$","typeString":"type(contract Proxy)"}},"id":9133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1641:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$573","typeString":"contract Proxy"}},"id":9134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":471,"src":"1641:25:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1641:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9137,"nodeType":"ExpressionStatement","src":"1641:36:41"}]},"documentation":{"id":9124,"nodeType":"StructuredDocumentation","src":"1504:44:41","text":" @inheritdoc IProxyAdapter"},"functionSelector":"7eff275e","id":9139,"implemented":true,"kind":"function","modifiers":[],"name":"changeProxyAdmin","nameLocation":"1562:16:41","nodeType":"FunctionDefinition","parameters":{"id":9129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9126,"mutability":"mutable","name":"_proxy","nameLocation":"1595:6:41","nodeType":"VariableDeclaration","scope":9139,"src":"1579:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9125,"name":"address","nodeType":"ElementaryTypeName","src":"1579:15:41","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9128,"mutability":"mutable","name":"_newAdmin","nameLocation":"1611:9:41","nodeType":"VariableDeclaration","scope":9139,"src":"1603:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9127,"name":"address","nodeType":"ElementaryTypeName","src":"1603:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1578:43:41"},"returnParameters":{"id":9130,"nodeType":"ParameterList","parameters":[],"src":"1631:0:41"},"scope":9140,"src":"1553:131:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9141,"src":"379:1307:41","usedErrors":[]}],"src":"32:1655:41"},"id":41},"contracts/adapters/OZTransparentAdapter.sol":{"ast":{"absolutePath":"contracts/adapters/OZTransparentAdapter.sol","exportedSymbols":{"IProxyAdapter":[9887],"IProxyUpdater":[9901],"OZTransparentAdapter":[9271],"Proxy":[573]},"id":9272,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9142,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:42"},{"absolutePath":"contracts/interfaces/IProxyAdapter.sol","file":"../interfaces/IProxyAdapter.sol","id":9144,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9272,"sourceUnit":9888,"src":"58:64:42","symbolAliases":[{"foreign":{"id":9143,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"67:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IProxyUpdater.sol","file":"../interfaces/IProxyUpdater.sol","id":9146,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9272,"sourceUnit":9902,"src":"123:64:42","symbolAliases":[{"foreign":{"id":9145,"name":"IProxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9901,"src":"132:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","file":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","id":9148,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9272,"sourceUnit":574,"src":"188:86:42","symbolAliases":[{"foreign":{"id":9147,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"197:5:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9150,"name":"IProxyAdapter","nodeType":"IdentifierPath","referencedDeclaration":9887,"src":"418:13:42"},"id":9151,"nodeType":"InheritanceSpecifier","src":"418:13:42"}],"canonicalName":"OZTransparentAdapter","contractDependencies":[],"contractKind":"contract","documentation":{"id":9149,"nodeType":"StructuredDocumentation","src":"276:108:42","text":" @title OZTransparentAdapter\n @notice Adapter for an OpenZeppelin Transparent Upgradeable proxy."},"fullyImplemented":true,"id":9271,"linearizedBaseContracts":[9271,9887],"name":"OZTransparentAdapter","nameLocation":"394:20:42","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":9152,"nodeType":"StructuredDocumentation","src":"438:152:42","text":" @notice Address of the ProxyUpdater contract that will be set as the Transparent proxy's\nimplementation during the deployment."},"functionSelector":"7bafa3c7","id":9154,"mutability":"immutable","name":"proxyUpdater","nameLocation":"620:12:42","nodeType":"VariableDeclaration","scope":9271,"src":"595:37:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9153,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":9174,"nodeType":"Block","src":"756:145:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9161,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"774:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"799:1:42","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":9163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"791:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9162,"name":"address","nodeType":"ElementaryTypeName","src":"791:7:42","typeDescriptions":{}}},"id":9165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"791:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"774:27:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f5a5472616e73706172656e74416461707465723a20757064617465722063616e6e6f742062652061646472657373283029","id":9167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"803:52:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_db0a450c8c901d4ed47b3408d68b5957390ad162d6d6d30d022a03a1be98e041","typeString":"literal_string \"OZTransparentAdapter: updater cannot be address(0)\""},"value":"OZTransparentAdapter: updater cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_db0a450c8c901d4ed47b3408d68b5957390ad162d6d6d30d022a03a1be98e041","typeString":"literal_string \"OZTransparentAdapter: updater cannot be address(0)\""}],"id":9160,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"766:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"766:90:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9169,"nodeType":"ExpressionStatement","src":"766:90:42"},{"expression":{"id":9172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9170,"name":"proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"866:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9171,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"881:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"866:28:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9173,"nodeType":"ExpressionStatement","src":"866:28:42"}]},"documentation":{"id":9155,"nodeType":"StructuredDocumentation","src":"639:77:42","text":" @param _proxyUpdater Address of the ProxyUpdater contract."},"id":9175,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9157,"mutability":"mutable","name":"_proxyUpdater","nameLocation":"741:13:42","nodeType":"VariableDeclaration","scope":9175,"src":"733:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9156,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"732:23:42"},"returnParameters":{"id":9159,"nodeType":"ParameterList","parameters":[],"src":"756:0:42"},"scope":9271,"src":"721:180:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9858],"body":{"id":9188,"nodeType":"Block","src":"1014:54:42","statements":[{"expression":{"arguments":[{"id":9185,"name":"proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"1048:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9182,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9178,"src":"1030:6:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9181,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"1024:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$573_$","typeString":"type(contract Proxy)"}},"id":9183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1024:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$573","typeString":"contract Proxy"}},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":425,"src":"1024:23:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1024:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9187,"nodeType":"ExpressionStatement","src":"1024:37:42"}]},"documentation":{"id":9176,"nodeType":"StructuredDocumentation","src":"907:44:42","text":" @inheritdoc IProxyAdapter"},"functionSelector":"479aa927","id":9189,"implemented":true,"kind":"function","modifiers":[],"name":"initiateUpgrade","nameLocation":"965:15:42","nodeType":"FunctionDefinition","parameters":{"id":9179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9178,"mutability":"mutable","name":"_proxy","nameLocation":"997:6:42","nodeType":"VariableDeclaration","scope":9189,"src":"981:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9177,"name":"address","nodeType":"ElementaryTypeName","src":"981:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"980:24:42"},"returnParameters":{"id":9180,"nodeType":"ParameterList","parameters":[],"src":"1014:0:42"},"scope":9271,"src":"956:112:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9866],"body":{"id":9204,"nodeType":"Block","src":"1206:57:42","statements":[{"expression":{"arguments":[{"id":9201,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9194,"src":"1240:15:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9198,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9192,"src":"1222:6:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9197,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"1216:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$573_$","typeString":"type(contract Proxy)"}},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$573","typeString":"contract Proxy"}},"id":9200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":425,"src":"1216:23:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:40:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9203,"nodeType":"ExpressionStatement","src":"1216:40:42"}]},"documentation":{"id":9190,"nodeType":"StructuredDocumentation","src":"1074:44:42","text":" @inheritdoc IProxyAdapter"},"functionSelector":"192957c8","id":9205,"implemented":true,"kind":"function","modifiers":[],"name":"finalizeUpgrade","nameLocation":"1132:15:42","nodeType":"FunctionDefinition","parameters":{"id":9195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9192,"mutability":"mutable","name":"_proxy","nameLocation":"1164:6:42","nodeType":"VariableDeclaration","scope":9205,"src":"1148:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9191,"name":"address","nodeType":"ElementaryTypeName","src":"1148:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9194,"mutability":"mutable","name":"_implementation","nameLocation":"1180:15:42","nodeType":"VariableDeclaration","scope":9205,"src":"1172:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9193,"name":"address","nodeType":"ElementaryTypeName","src":"1172:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1147:49:42"},"returnParameters":{"id":9196,"nodeType":"ParameterList","parameters":[],"src":"1206:0:42"},"scope":9271,"src":"1123:140:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9878],"body":{"id":9253,"nodeType":"Block","src":"1459:639:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9218,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"1477:6:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1477:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1477:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1498:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1477:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f5a5472616e73706172656e74416461707465723a20696e76616c69642070726f7879","id":9223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1501:37:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_11ca7cb660bf02687d0545cfd1a2828b92119ad5155178ad4adc14f51a7fb8ad","typeString":"literal_string \"OZTransparentAdapter: invalid proxy\""},"value":"OZTransparentAdapter: invalid proxy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_11ca7cb660bf02687d0545cfd1a2828b92119ad5155178ad4adc14f51a7fb8ad","typeString":"literal_string \"OZTransparentAdapter: invalid proxy\""}],"id":9217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1469:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1469:70:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9225,"nodeType":"ExpressionStatement","src":"1469:70:42"},{"assignments":[9227,null],"declarations":[{"constant":false,"id":9227,"mutability":"mutable","name":"success","nameLocation":"1798:7:42","nodeType":"VariableDeclaration","scope":9253,"src":"1793:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9226,"name":"bool","nodeType":"ElementaryTypeName","src":"1793:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":9247,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":9232,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"1868:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$573_$","typeString":"type(contract Proxy)"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":458,"src":"1868:22:42","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function Proxy.upgradeToAndCall(address,bytes calldata) payable returns (bytes memory)"}},{"components":[{"id":9234,"name":"proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9154,"src":"1909:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":9237,"name":"IProxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9901,"src":"1938:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyUpdater_$9901_$","typeString":"type(contract IProxyUpdater)"}},"id":9238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"setStorage","nodeType":"MemberAccess","referencedDeclaration":9900,"src":"1938:24:42","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function IProxyUpdater.setStorage(bytes32,uint8,bytes memory)"}},{"components":[{"id":9239,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9210,"src":"1965:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9240,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9212,"src":"1971:7:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9241,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9214,"src":"1980:6:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":9242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1964:23:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes32,uint8,bytes memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function IProxyUpdater.setStorage(bytes32,uint8,bytes memory)"},{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes32,uint8,bytes memory)"}],"expression":{"id":9235,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1923:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"1923:14:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1923:65:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":9244,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1908:81:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function Proxy.upgradeToAndCall(address,bytes calldata) payable returns (bytes memory)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}],"expression":{"id":9230,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1836:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"1836:14:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1836:167:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9228,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"1811:6:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1811:11:42","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":9246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1811:202:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1792:221:42"},{"expression":{"arguments":[{"id":9249,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9227,"src":"2031:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f5a5472616e73706172656e74416461707465723a2063616c6c20746f207365742073746f72616765206661696c6564","id":9250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2040:50:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_cae871cacd4c7181726c0b80eec7dc999e5710b3f992000c3f11884209b728f7","typeString":"literal_string \"OZTransparentAdapter: call to set storage failed\""},"value":"OZTransparentAdapter: call to set storage failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cae871cacd4c7181726c0b80eec7dc999e5710b3f992000c3f11884209b728f7","typeString":"literal_string \"OZTransparentAdapter: call to set storage failed\""}],"id":9248,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2023:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2023:68:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9252,"nodeType":"ExpressionStatement","src":"2023:68:42"}]},"documentation":{"id":9206,"nodeType":"StructuredDocumentation","src":"1269:44:42","text":" @inheritdoc IProxyAdapter"},"functionSelector":"9bc6ee9a","id":9254,"implemented":true,"kind":"function","modifiers":[],"name":"setStorage","nameLocation":"1327:10:42","nodeType":"FunctionDefinition","parameters":{"id":9215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9208,"mutability":"mutable","name":"_proxy","nameLocation":"1363:6:42","nodeType":"VariableDeclaration","scope":9254,"src":"1347:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9207,"name":"address","nodeType":"ElementaryTypeName","src":"1347:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9210,"mutability":"mutable","name":"_key","nameLocation":"1387:4:42","nodeType":"VariableDeclaration","scope":9254,"src":"1379:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9212,"mutability":"mutable","name":"_offset","nameLocation":"1407:7:42","nodeType":"VariableDeclaration","scope":9254,"src":"1401:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9211,"name":"uint8","nodeType":"ElementaryTypeName","src":"1401:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9214,"mutability":"mutable","name":"_value","nameLocation":"1437:6:42","nodeType":"VariableDeclaration","scope":9254,"src":"1424:19:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9213,"name":"bytes","nodeType":"ElementaryTypeName","src":"1424:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1337:112:42"},"returnParameters":{"id":9216,"nodeType":"ParameterList","parameters":[],"src":"1459:0:42"},"scope":9271,"src":"1318:780:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9886],"body":{"id":9269,"nodeType":"Block","src":"2231:53:42","statements":[{"expression":{"arguments":[{"id":9266,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9259,"src":"2267:9:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9263,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9257,"src":"2247:6:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9262,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"2241:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Proxy_$573_$","typeString":"type(contract Proxy)"}},"id":9264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2241:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Proxy_$573","typeString":"contract Proxy"}},"id":9265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":471,"src":"2241:25:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2241:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9268,"nodeType":"ExpressionStatement","src":"2241:36:42"}]},"documentation":{"id":9255,"nodeType":"StructuredDocumentation","src":"2104:44:42","text":" @inheritdoc IProxyAdapter"},"functionSelector":"7eff275e","id":9270,"implemented":true,"kind":"function","modifiers":[],"name":"changeProxyAdmin","nameLocation":"2162:16:42","nodeType":"FunctionDefinition","parameters":{"id":9260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9257,"mutability":"mutable","name":"_proxy","nameLocation":"2195:6:42","nodeType":"VariableDeclaration","scope":9270,"src":"2179:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9256,"name":"address","nodeType":"ElementaryTypeName","src":"2179:15:42","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9259,"mutability":"mutable","name":"_newAdmin","nameLocation":"2211:9:42","nodeType":"VariableDeclaration","scope":9270,"src":"2203:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9258,"name":"address","nodeType":"ElementaryTypeName","src":"2203:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2178:43:42"},"returnParameters":{"id":9261,"nodeType":"ParameterList","parameters":[],"src":"2231:0:42"},"scope":9271,"src":"2153:131:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9272,"src":"385:1901:42","usedErrors":[]}],"src":"32:2255:42"},"id":42},"contracts/adapters/OZUUPSAccessControlAdapter.sol":{"ast":{"absolutePath":"contracts/adapters/OZUUPSAccessControlAdapter.sol","exportedSymbols":{"AccessControl":[2111],"IProxyAdapter":[9887],"OZUUPSAccessControlAdapter":[9311],"OZUUPSBaseAdapter":[9413]},"id":9312,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9273,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:43"},{"absolutePath":"contracts/adapters/OZUUPSBaseAdapter.sol","file":"./OZUUPSBaseAdapter.sol","id":9275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9312,"sourceUnit":9414,"src":"58:60:43","symbolAliases":[{"foreign":{"id":9274,"name":"OZUUPSBaseAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9413,"src":"67:17:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":9277,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9312,"sourceUnit":2112,"src":"119:81:43","symbolAliases":[{"foreign":{"id":9276,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2111,"src":"128:13:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IProxyAdapter.sol","file":"../interfaces/IProxyAdapter.sol","id":9279,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9312,"sourceUnit":9888,"src":"201:64:43","symbolAliases":[{"foreign":{"id":9278,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"210:13:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9281,"name":"OZUUPSBaseAdapter","nodeType":"IdentifierPath","referencedDeclaration":9413,"src":"463:17:43"},"id":9282,"nodeType":"InheritanceSpecifier","src":"463:17:43"}],"canonicalName":"OZUUPSAccessControlAdapter","contractDependencies":[],"contractKind":"contract","documentation":{"id":9280,"nodeType":"StructuredDocumentation","src":"267:156:43","text":" @title OZUUPSAccessControlAdapter\n @notice Proxy adapter for an OpenZeppelin UUPS proxy that uses AccessControl for its ownership\nmechanism."},"fullyImplemented":true,"id":9311,"linearizedBaseContracts":[9311,9413,9887],"name":"OZUUPSAccessControlAdapter","nameLocation":"433:26:43","nodeType":"ContractDefinition","nodes":[{"body":{"id":9291,"nodeType":"Block","src":"637:2:43","statements":[]},"documentation":{"id":9283,"nodeType":"StructuredDocumentation","src":"487:77:43","text":" @param _proxyUpdater Address of the ProxyUpdater contract."},"id":9292,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9288,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9285,"src":"622:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":9289,"kind":"baseConstructorSpecifier","modifierName":{"id":9287,"name":"OZUUPSBaseAdapter","nodeType":"IdentifierPath","referencedDeclaration":9413,"src":"604:17:43"},"nodeType":"ModifierInvocation","src":"604:32:43"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9285,"mutability":"mutable","name":"_proxyUpdater","nameLocation":"589:13:43","nodeType":"VariableDeclaration","scope":9292,"src":"581:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9284,"name":"address","nodeType":"ElementaryTypeName","src":"581:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"580:23:43"},"returnParameters":{"id":9290,"nodeType":"ParameterList","parameters":[],"src":"637:0:43"},"scope":9311,"src":"569:70:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9412],"body":{"id":9309,"nodeType":"Block","src":"842:65:43","statements":[{"expression":{"arguments":[{"hexValue":"30783030","id":9305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"884:4:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},{"id":9306,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9297,"src":"890:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9302,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9295,"src":"866:6:43","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9301,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2111,"src":"852:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControl_$2111_$","typeString":"type(contract AccessControl)"}},"id":9303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"852:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AccessControl_$2111","typeString":"contract AccessControl"}},"id":9304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"grantRole","nodeType":"MemberAccess","referencedDeclaration":1962,"src":"852:31:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":9307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"852:48:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9308,"nodeType":"ExpressionStatement","src":"852:48:43"}]},"documentation":{"id":9293,"nodeType":"StructuredDocumentation","src":"645:105:43","text":" Transfers ownership of the proxy using AccessControl.\n @inheritdoc IProxyAdapter"},"functionSelector":"7eff275e","id":9310,"implemented":true,"kind":"function","modifiers":[],"name":"changeProxyAdmin","nameLocation":"764:16:43","nodeType":"FunctionDefinition","overrides":{"id":9299,"nodeType":"OverrideSpecifier","overrides":[],"src":"833:8:43"},"parameters":{"id":9298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9295,"mutability":"mutable","name":"_proxy","nameLocation":"797:6:43","nodeType":"VariableDeclaration","scope":9310,"src":"781:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9294,"name":"address","nodeType":"ElementaryTypeName","src":"781:15:43","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9297,"mutability":"mutable","name":"_newAdmin","nameLocation":"813:9:43","nodeType":"VariableDeclaration","scope":9310,"src":"805:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9296,"name":"address","nodeType":"ElementaryTypeName","src":"805:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"780:43:43"},"returnParameters":{"id":9300,"nodeType":"ParameterList","parameters":[],"src":"842:0:43"},"scope":9311,"src":"755:152:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9312,"src":"424:485:43","usedErrors":[]}],"src":"32:878:43"},"id":43},"contracts/adapters/OZUUPSBaseAdapter.sol":{"ast":{"absolutePath":"contracts/adapters/OZUUPSBaseAdapter.sol","exportedSymbols":{"IProxyAdapter":[9887],"OZUUPSBaseAdapter":[9413],"OZUUPSUpdater":[10151],"Proxy":[573]},"id":9414,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9313,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:44"},{"absolutePath":"contracts/interfaces/IProxyAdapter.sol","file":"../interfaces/IProxyAdapter.sol","id":9315,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9414,"sourceUnit":9888,"src":"58:64:44","symbolAliases":[{"foreign":{"id":9314,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"67:13:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/updaters/OZUUPSUpdater.sol","file":"../updaters/OZUUPSUpdater.sol","id":9317,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9414,"sourceUnit":10152,"src":"123:62:44","symbolAliases":[{"foreign":{"id":9316,"name":"OZUUPSUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"132:13:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","file":"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol","id":9319,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9414,"sourceUnit":574,"src":"186:86:44","symbolAliases":[{"foreign":{"id":9318,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"195:5:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":9321,"name":"IProxyAdapter","nodeType":"IdentifierPath","referencedDeclaration":9887,"src":"646:13:44"},"id":9322,"nodeType":"InheritanceSpecifier","src":"646:13:44"}],"canonicalName":"OZUUPSBaseAdapter","contractDependencies":[],"contractKind":"contract","documentation":{"id":9320,"nodeType":"StructuredDocumentation","src":"274:332:44","text":" @title OZUUPSBaseAdapter\n @notice An abstract proxy adapter for OpenZeppelin UUPS Upgradeable proxies. Child contracts must\nimplement their own access control mechanism for the `changeProxyAdmin` function since\nUUPS proxies do not have a standard access control mechanism like Transparent proxies."},"fullyImplemented":false,"id":9413,"linearizedBaseContracts":[9413,9887],"name":"OZUUPSBaseAdapter","nameLocation":"625:17:44","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":9323,"nodeType":"StructuredDocumentation","src":"666:158:44","text":" @notice Address of the ProxyUpdater contract that will be set as the OpenZeppelin UUPS\nproxy's implementation during the deployment."},"functionSelector":"7bafa3c7","id":9325,"mutability":"immutable","name":"proxyUpdater","nameLocation":"854:12:44","nodeType":"VariableDeclaration","scope":9413,"src":"829:37:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9324,"name":"address","nodeType":"ElementaryTypeName","src":"829:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":9345,"nodeType":"Block","src":"990:142:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9332,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9328,"src":"1008:13:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1033:1:44","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":9334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1025:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9333,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:44","typeDescriptions":{}}},"id":9336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1025:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1008:27:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f5a5555505342617365416461707465723a20757064617465722063616e6e6f742062652061646472657373283029","id":9338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1037:49:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8","typeString":"literal_string \"OZUUPSBaseAdapter: updater cannot be address(0)\""},"value":"OZUUPSBaseAdapter: updater cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8","typeString":"literal_string \"OZUUPSBaseAdapter: updater cannot be address(0)\""}],"id":9331,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1000:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1000:87:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9340,"nodeType":"ExpressionStatement","src":"1000:87:44"},{"expression":{"id":9343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9341,"name":"proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9325,"src":"1097:12:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9342,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9328,"src":"1112:13:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1097:28:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9344,"nodeType":"ExpressionStatement","src":"1097:28:44"}]},"documentation":{"id":9326,"nodeType":"StructuredDocumentation","src":"873:77:44","text":" @param _proxyUpdater Address of the ProxyUpdater contract."},"id":9346,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9328,"mutability":"mutable","name":"_proxyUpdater","nameLocation":"975:13:44","nodeType":"VariableDeclaration","scope":9346,"src":"967:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9327,"name":"address","nodeType":"ElementaryTypeName","src":"967:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"966:23:44"},"returnParameters":{"id":9330,"nodeType":"ParameterList","parameters":[],"src":"990:0:44"},"scope":9413,"src":"955:177:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[9858],"body":{"id":9365,"nodeType":"Block","src":"1245:104:44","statements":[{"expression":{"arguments":[{"id":9356,"name":"proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9325,"src":"1287:12:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9353,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9349,"src":"1269:6:44","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9352,"name":"OZUUPSUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"1255:13:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OZUUPSUpdater_$10151_$","typeString":"type(contract OZUUPSUpdater)"}},"id":9354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}},"id":9355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":10047,"src":"1255:31:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:45:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9358,"nodeType":"ExpressionStatement","src":"1255:45:44"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9360,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9349,"src":"1324:6:44","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9359,"name":"OZUUPSUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"1310:13:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OZUUPSUpdater_$10151_$","typeString":"type(contract OZUUPSUpdater)"}},"id":9361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1310:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}},"id":9362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initiate","nodeType":"MemberAccess","referencedDeclaration":10064,"src":"1310:30:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":9363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1310:32:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9364,"nodeType":"ExpressionStatement","src":"1310:32:44"}]},"documentation":{"id":9347,"nodeType":"StructuredDocumentation","src":"1138:44:44","text":" @inheritdoc IProxyAdapter"},"functionSelector":"479aa927","id":9366,"implemented":true,"kind":"function","modifiers":[],"name":"initiateUpgrade","nameLocation":"1196:15:44","nodeType":"FunctionDefinition","parameters":{"id":9350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9349,"mutability":"mutable","name":"_proxy","nameLocation":"1228:6:44","nodeType":"VariableDeclaration","scope":9366,"src":"1212:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9348,"name":"address","nodeType":"ElementaryTypeName","src":"1212:15:44","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"1211:24:44"},"returnParameters":{"id":9351,"nodeType":"ParameterList","parameters":[],"src":"1245:0:44"},"scope":9413,"src":"1187:162:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9866],"body":{"id":9381,"nodeType":"Block","src":"1487:64:44","statements":[{"expression":{"arguments":[{"id":9378,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9371,"src":"1528:15:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9375,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"1511:6:44","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9374,"name":"OZUUPSUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"1497:13:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OZUUPSUpdater_$10151_$","typeString":"type(contract OZUUPSUpdater)"}},"id":9376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1497:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}},"id":9377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"complete","nodeType":"MemberAccess","referencedDeclaration":10084,"src":"1497:30:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1497:47:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9380,"nodeType":"ExpressionStatement","src":"1497:47:44"}]},"documentation":{"id":9367,"nodeType":"StructuredDocumentation","src":"1355:44:44","text":" @inheritdoc IProxyAdapter"},"functionSelector":"192957c8","id":9382,"implemented":true,"kind":"function","modifiers":[],"name":"finalizeUpgrade","nameLocation":"1413:15:44","nodeType":"FunctionDefinition","parameters":{"id":9372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9369,"mutability":"mutable","name":"_proxy","nameLocation":"1445:6:44","nodeType":"VariableDeclaration","scope":9382,"src":"1429:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9368,"name":"address","nodeType":"ElementaryTypeName","src":"1429:15:44","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9371,"mutability":"mutable","name":"_implementation","nameLocation":"1461:15:44","nodeType":"VariableDeclaration","scope":9382,"src":"1453:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9370,"name":"address","nodeType":"ElementaryTypeName","src":"1453:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1428:49:44"},"returnParameters":{"id":9373,"nodeType":"ParameterList","parameters":[],"src":"1487:0:44"},"scope":9413,"src":"1404:147:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9878],"body":{"id":9403,"nodeType":"Block","src":"1747:72:44","statements":[{"expression":{"arguments":[{"id":9398,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9387,"src":"1790:4:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9399,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"1796:7:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9400,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"1805:6:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":9395,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"1771:6:44","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9394,"name":"OZUUPSUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"1757:13:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OZUUPSUpdater_$10151_$","typeString":"type(contract OZUUPSUpdater)"}},"id":9396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1757:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}},"id":9397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setStorage","nodeType":"MemberAccess","referencedDeclaration":10117,"src":"1757:32:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint8,bytes memory) external"}},"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1757:55:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9402,"nodeType":"ExpressionStatement","src":"1757:55:44"}]},"documentation":{"id":9383,"nodeType":"StructuredDocumentation","src":"1557:44:44","text":" @inheritdoc IProxyAdapter"},"functionSelector":"9bc6ee9a","id":9404,"implemented":true,"kind":"function","modifiers":[],"name":"setStorage","nameLocation":"1615:10:44","nodeType":"FunctionDefinition","parameters":{"id":9392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9385,"mutability":"mutable","name":"_proxy","nameLocation":"1651:6:44","nodeType":"VariableDeclaration","scope":9404,"src":"1635:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9384,"name":"address","nodeType":"ElementaryTypeName","src":"1635:15:44","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9387,"mutability":"mutable","name":"_key","nameLocation":"1675:4:44","nodeType":"VariableDeclaration","scope":9404,"src":"1667:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1667:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9389,"mutability":"mutable","name":"_offset","nameLocation":"1695:7:44","nodeType":"VariableDeclaration","scope":9404,"src":"1689:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9388,"name":"uint8","nodeType":"ElementaryTypeName","src":"1689:5:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9391,"mutability":"mutable","name":"_value","nameLocation":"1725:6:44","nodeType":"VariableDeclaration","scope":9404,"src":"1712:19:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9390,"name":"bytes","nodeType":"ElementaryTypeName","src":"1712:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1625:112:44"},"returnParameters":{"id":9393,"nodeType":"ParameterList","parameters":[],"src":"1747:0:44"},"scope":9413,"src":"1606:213:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[9886],"documentation":{"id":9405,"nodeType":"StructuredDocumentation","src":"1825:222:44","text":"Must be overridden in child contracts in order to transfer ownership using the UUPS proxy's\ncurrent acccess control mechanism (e.g. `Ownable.transferOwnership`).\n @inheritdoc IProxyAdapter"},"functionSelector":"7eff275e","id":9412,"implemented":false,"kind":"function","modifiers":[],"name":"changeProxyAdmin","nameLocation":"2061:16:44","nodeType":"FunctionDefinition","parameters":{"id":9410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9407,"mutability":"mutable","name":"_proxy","nameLocation":"2094:6:44","nodeType":"VariableDeclaration","scope":9412,"src":"2078:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9406,"name":"address","nodeType":"ElementaryTypeName","src":"2078:15:44","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9409,"mutability":"mutable","name":"_newAdmin","nameLocation":"2110:9:44","nodeType":"VariableDeclaration","scope":9412,"src":"2102:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9408,"name":"address","nodeType":"ElementaryTypeName","src":"2102:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2077:43:44"},"returnParameters":{"id":9411,"nodeType":"ParameterList","parameters":[],"src":"2137:0:44"},"scope":9413,"src":"2052:86:44","stateMutability":"nonpayable","virtual":true,"visibility":"external"}],"scope":9414,"src":"607:1533:44","usedErrors":[]}],"src":"32:2109:44"},"id":44},"contracts/adapters/OZUUPSOwnableAdapter.sol":{"ast":{"absolutePath":"contracts/adapters/OZUUPSOwnableAdapter.sol","exportedSymbols":{"IProxyAdapter":[9887],"OZUUPSBaseAdapter":[9413],"OZUUPSOwnableAdapter":[9452],"Ownable":[2297]},"id":9453,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9415,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:45"},{"absolutePath":"contracts/adapters/OZUUPSBaseAdapter.sol","file":"./OZUUPSBaseAdapter.sol","id":9417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9453,"sourceUnit":9414,"src":"58:60:45","symbolAliases":[{"foreign":{"id":9416,"name":"OZUUPSBaseAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9413,"src":"67:17:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":9419,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9453,"sourceUnit":2298,"src":"119:69:45","symbolAliases":[{"foreign":{"id":9418,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"128:7:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/interfaces/IProxyAdapter.sol","file":"../interfaces/IProxyAdapter.sol","id":9421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9453,"sourceUnit":9888,"src":"189:64:45","symbolAliases":[{"foreign":{"id":9420,"name":"IProxyAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9887,"src":"198:13:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9423,"name":"OZUUPSBaseAdapter","nodeType":"IdentifierPath","referencedDeclaration":9413,"src":"436:17:45"},"id":9424,"nodeType":"InheritanceSpecifier","src":"436:17:45"}],"canonicalName":"OZUUPSOwnableAdapter","contractDependencies":[],"contractKind":"contract","documentation":{"id":9422,"nodeType":"StructuredDocumentation","src":"255:147:45","text":" @title OZUUPSOwnableAdapter\n @notice Proxy adapter for an OpenZeppelin UUPS proxy that uses OwnableUpgradeable\nfor access control."},"fullyImplemented":true,"id":9452,"linearizedBaseContracts":[9452,9413,9887],"name":"OZUUPSOwnableAdapter","nameLocation":"412:20:45","nodeType":"ContractDefinition","nodes":[{"body":{"id":9433,"nodeType":"Block","src":"610:2:45","statements":[]},"documentation":{"id":9425,"nodeType":"StructuredDocumentation","src":"460:77:45","text":" @param _proxyUpdater Address of the ProxyUpdater contract."},"id":9434,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9430,"name":"_proxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9427,"src":"595:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":9431,"kind":"baseConstructorSpecifier","modifierName":{"id":9429,"name":"OZUUPSBaseAdapter","nodeType":"IdentifierPath","referencedDeclaration":9413,"src":"577:17:45"},"nodeType":"ModifierInvocation","src":"577:32:45"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9427,"mutability":"mutable","name":"_proxyUpdater","nameLocation":"562:13:45","nodeType":"VariableDeclaration","scope":9434,"src":"554:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9426,"name":"address","nodeType":"ElementaryTypeName","src":"554:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"553:23:45"},"returnParameters":{"id":9432,"nodeType":"ParameterList","parameters":[],"src":"610:0:45"},"scope":9452,"src":"542:70:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9412],"body":{"id":9450,"nodeType":"Block","src":"838:61:45","statements":[{"expression":{"arguments":[{"id":9447,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9439,"src":"882:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9444,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9437,"src":"856:6:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9443,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"848:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Ownable_$2297_$","typeString":"type(contract Ownable)"}},"id":9445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"848:15:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$2297","typeString":"contract Ownable"}},"id":9446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":2276,"src":"848:33:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"848:44:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9449,"nodeType":"ExpressionStatement","src":"848:44:45"}]},"documentation":{"id":9435,"nodeType":"StructuredDocumentation","src":"618:128:45","text":" Transfers ownership of the proxy using the Ownable access control mechanism.\n @inheritdoc IProxyAdapter"},"functionSelector":"7eff275e","id":9451,"implemented":true,"kind":"function","modifiers":[],"name":"changeProxyAdmin","nameLocation":"760:16:45","nodeType":"FunctionDefinition","overrides":{"id":9441,"nodeType":"OverrideSpecifier","overrides":[],"src":"829:8:45"},"parameters":{"id":9440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9437,"mutability":"mutable","name":"_proxy","nameLocation":"793:6:45","nodeType":"VariableDeclaration","scope":9451,"src":"777:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9436,"name":"address","nodeType":"ElementaryTypeName","src":"777:15:45","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9439,"mutability":"mutable","name":"_newAdmin","nameLocation":"809:9:45","nodeType":"VariableDeclaration","scope":9451,"src":"801:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9438,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"776:43:45"},"returnParameters":{"id":9442,"nodeType":"ParameterList","parameters":[],"src":"838:0:45"},"scope":9452,"src":"751:148:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9453,"src":"403:498:45","usedErrors":[]}],"src":"32:870:45"},"id":45},"contracts/adapters/cross-chain/ConnextCrossChainAdapter.sol":{"ast":{"absolutePath":"contracts/adapters/cross-chain/ConnextCrossChainAdapter.sol","exportedSymbols":{"ChugSplashRegistry":[8652],"ConnextCrossChainAdapter":[9529],"CrossChainMessageInfo":[5560],"IConnext":[285],"ICrossChainAdapter":[9823],"RegistrationInfo":[5575]},"id":9530,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9454,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:46"},{"absolutePath":"contracts/interfaces/ICrossChainAdapter.sol","file":"../../interfaces/ICrossChainAdapter.sol","id":9456,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9530,"sourceUnit":9824,"src":"58:77:46","symbolAliases":[{"foreign":{"id":9455,"name":"ICrossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"67:18:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@connext/interfaces/core/IConnext.sol","file":"@connext/interfaces/core/IConnext.sol","id":9458,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9530,"sourceUnit":286,"src":"136:65:46","symbolAliases":[{"foreign":{"id":9457,"name":"IConnext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":285,"src":"145:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"../../ChugSplashDataTypes.sol","id":9461,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9530,"sourceUnit":5617,"src":"202:88:46","symbolAliases":[{"foreign":{"id":9459,"name":"RegistrationInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"211:16:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9460,"name":"CrossChainMessageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5560,"src":"229:21:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashRegistry.sol","file":"../../ChugSplashRegistry.sol","id":9463,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9530,"sourceUnit":8653,"src":"291:66:46","symbolAliases":[{"foreign":{"id":9462,"name":"ChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"300:18:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9465,"name":"ICrossChainAdapter","nodeType":"IdentifierPath","referencedDeclaration":9823,"src":"439:18:46"},"id":9466,"nodeType":"InheritanceSpecifier","src":"439:18:46"}],"canonicalName":"ConnextCrossChainAdapter","contractDependencies":[],"contractKind":"contract","documentation":{"id":9464,"nodeType":"StructuredDocumentation","src":"359:42:46","text":" @title ConnextCrossChainAdapter"},"fullyImplemented":true,"id":9529,"linearizedBaseContracts":[9529,9823],"name":"ConnextCrossChainAdapter","nameLocation":"411:24:46","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":9468,"mutability":"immutable","name":"registry","nameLocation":"489:8:46","nodeType":"VariableDeclaration","scope":9529,"src":"464:33:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9467,"name":"address","nodeType":"ElementaryTypeName","src":"464:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":9477,"nodeType":"Block","src":"535:37:46","statements":[{"expression":{"id":9475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9473,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"545:8:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9474,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9470,"src":"556:9:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"545:20:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9476,"nodeType":"ExpressionStatement","src":"545:20:46"}]},"id":9478,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9470,"mutability":"mutable","name":"_registry","nameLocation":"524:9:46","nodeType":"VariableDeclaration","scope":9478,"src":"516:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9469,"name":"address","nodeType":"ElementaryTypeName","src":"516:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"515:19:46"},"returnParameters":{"id":9472,"nodeType":"ParameterList","parameters":[],"src":"535:0:46"},"scope":9529,"src":"504:68:46","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9822],"body":{"id":9527,"nodeType":"Block","src":"741:934:46","statements":[{"assignments":[9490],"declarations":[{"constant":false,"id":9490,"mutability":"mutable","name":"registryCalldata","nameLocation":"764:16:46","nodeType":"VariableDeclaration","scope":9527,"src":"751:29:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9489,"name":"bytes","nodeType":"ElementaryTypeName","src":"751:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9504,"initialValue":{"arguments":[{"expression":{"id":9493,"name":"ChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"811:18:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ChugSplashRegistry_$8652_$","typeString":"type(contract ChugSplashRegistry)"}},"id":9494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeRegistration","nodeType":"MemberAccess","referencedDeclaration":8497,"src":"811:39:46","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_address_$_t_struct$_Version_$5567_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function ChugSplashRegistry.finalizeRegistration(bytes32,address,struct Version memory,bytes memory)"}},{"components":[{"id":9495,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"882:6:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":9496,"name":"_registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"906:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":9497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5572,"src":"906:19:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9498,"name":"_registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"943:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":9499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":5570,"src":"943:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},{"expression":{"id":9500,"name":"_registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"982:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":9501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"managerInitializerData","nodeType":"MemberAccess","referencedDeclaration":5574,"src":"982:36:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":9502,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"864:168:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_address_$_t_struct$_Version_$5567_memory_ptr_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes32,address,struct Version memory,bytes memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_address_$_t_struct$_Version_$5567_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function ChugSplashRegistry.finalizeRegistration(bytes32,address,struct Version memory,bytes memory)"},{"typeIdentifier":"t_tuple$_t_bytes32_$_t_address_$_t_struct$_Version_$5567_memory_ptr_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes32,address,struct Version memory,bytes memory)"}],"expression":{"id":9491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"783:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeCall","nodeType":"MemberAccess","src":"783:14:46","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"783:259:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"751:291:46"},{"expression":{"arguments":[{"expression":{"id":9513,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"1136:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"id":9514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"destDomainID","nodeType":"MemberAccess","referencedDeclaration":5557,"src":"1136:21:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":9515,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"1223:8:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1317:1:46","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":9517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1309:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9516,"name":"address","nodeType":"ElementaryTypeName","src":"1309:7:46","typeDescriptions":{}}},"id":9519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1309:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9520,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1391:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1391:10:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":9522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1482:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":9523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1555:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9524,"name":"registryCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"1599:16:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":9506,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"1062:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"id":9507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"originEndpoint","nodeType":"MemberAccess","referencedDeclaration":5555,"src":"1062:23:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9505,"name":"IConnext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":285,"src":"1053:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IConnext_$285_$","typeString":"type(contract IConnext)"}},"id":9508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1053:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IConnext_$285","typeString":"contract IConnext"}},"id":9509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xcall","nodeType":"MemberAccess","referencedDeclaration":26,"src":"1053:39:46","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint32_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint32,address,address,address,uint256,uint256,bytes memory) payable external returns (bytes32)"}},"id":9512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":9510,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"1101:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo memory"}},"id":9511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"relayerFee","nodeType":"MemberAccess","referencedDeclaration":5559,"src":"1101:19:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1053:69:46","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint32_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (uint32,address,address,address,uint256,uint256,bytes memory) payable external returns (bytes32)"}},"id":9525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1053:615:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9526,"nodeType":"ExpressionStatement","src":"1053:615:46"}]},"functionSelector":"e787bc69","id":9528,"implemented":true,"kind":"function","modifiers":[],"name":"initiateRegistration","nameLocation":"587:20:46","nodeType":"FunctionDefinition","parameters":{"id":9487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9480,"mutability":"mutable","name":"_orgID","nameLocation":"625:6:46","nodeType":"VariableDeclaration","scope":9528,"src":"617:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9483,"mutability":"mutable","name":"_registration","nameLocation":"665:13:46","nodeType":"VariableDeclaration","scope":9528,"src":"641:37:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo"},"typeName":{"id":9482,"nodeType":"UserDefinedTypeName","pathNode":{"id":9481,"name":"RegistrationInfo","nodeType":"IdentifierPath","referencedDeclaration":5575,"src":"641:16:46"},"referencedDeclaration":5575,"src":"641:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_storage_ptr","typeString":"struct RegistrationInfo"}},"visibility":"internal"},{"constant":false,"id":9486,"mutability":"mutable","name":"_message","nameLocation":"717:8:46","nodeType":"VariableDeclaration","scope":9528,"src":"688:37:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo"},"typeName":{"id":9485,"nodeType":"UserDefinedTypeName","pathNode":{"id":9484,"name":"CrossChainMessageInfo","nodeType":"IdentifierPath","referencedDeclaration":5560,"src":"688:21:46"},"referencedDeclaration":5560,"src":"688:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_storage_ptr","typeString":"struct CrossChainMessageInfo"}},"visibility":"internal"}],"src":"607:124:46"},"returnParameters":{"id":9488,"nodeType":"ParameterList","parameters":[],"src":"741:0:46"},"scope":9529,"src":"578:1097:46","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9530,"src":"402:1275:46","usedErrors":[]}],"src":"32:1646:46"},"id":46},"contracts/adapters/cross-chain/LocalAdapter.sol":{"ast":{"absolutePath":"contracts/adapters/cross-chain/LocalAdapter.sol","exportedSymbols":{"ChugSplashRegistry":[8652],"CrossChainMessageInfo":[5560],"IConnext":[285],"ICrossChainAdapter":[9823],"LocalAdapter":[9582],"RegistrationInfo":[5575]},"id":9583,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9531,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:47"},{"absolutePath":"contracts/interfaces/ICrossChainAdapter.sol","file":"../../interfaces/ICrossChainAdapter.sol","id":9533,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9583,"sourceUnit":9824,"src":"58:77:47","symbolAliases":[{"foreign":{"id":9532,"name":"ICrossChainAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"67:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashRegistry.sol","file":"../../ChugSplashRegistry.sol","id":9535,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9583,"sourceUnit":8653,"src":"136:66:47","symbolAliases":[{"foreign":{"id":9534,"name":"ChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"145:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"../../ChugSplashDataTypes.sol","id":9538,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9583,"sourceUnit":5617,"src":"203:88:47","symbolAliases":[{"foreign":{"id":9536,"name":"RegistrationInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"212:16:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9537,"name":"CrossChainMessageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5560,"src":"230:21:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@connext/interfaces/core/IConnext.sol","file":"@connext/interfaces/core/IConnext.sol","id":9540,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9583,"sourceUnit":286,"src":"292:65:47","symbolAliases":[{"foreign":{"id":9539,"name":"IConnext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":285,"src":"301:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9542,"name":"ICrossChainAdapter","nodeType":"IdentifierPath","referencedDeclaration":9823,"src":"415:18:47"},"id":9543,"nodeType":"InheritanceSpecifier","src":"415:18:47"}],"canonicalName":"LocalAdapter","contractDependencies":[],"contractKind":"contract","documentation":{"id":9541,"nodeType":"StructuredDocumentation","src":"359:30:47","text":" @title LocalAdapter"},"fullyImplemented":true,"id":9582,"linearizedBaseContracts":[9582,9823],"name":"LocalAdapter","nameLocation":"399:12:47","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":9546,"mutability":"immutable","name":"registry","nameLocation":"476:8:47","nodeType":"VariableDeclaration","scope":9582,"src":"440:44:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},"typeName":{"id":9545,"nodeType":"UserDefinedTypeName","pathNode":{"id":9544,"name":"ChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":8652,"src":"440:18:47"},"referencedDeclaration":8652,"src":"440:18:47","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"visibility":"public"},{"body":{"id":9556,"nodeType":"Block","src":"533:37:47","statements":[{"expression":{"id":9554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9552,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9546,"src":"543:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9553,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"554:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"src":"543:20:47","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"id":9555,"nodeType":"ExpressionStatement","src":"543:20:47"}]},"id":9557,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9549,"mutability":"mutable","name":"_registry","nameLocation":"522:9:47","nodeType":"VariableDeclaration","scope":9557,"src":"503:28:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"},"typeName":{"id":9548,"nodeType":"UserDefinedTypeName","pathNode":{"id":9547,"name":"ChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":8652,"src":"503:18:47"},"referencedDeclaration":8652,"src":"503:18:47","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"visibility":"internal"}],"src":"502:30:47"},"returnParameters":{"id":9551,"nodeType":"ParameterList","parameters":[],"src":"533:0:47"},"scope":9582,"src":"491:79:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9822],"body":{"id":9580,"nodeType":"Block","src":"730:194:47","statements":[{"expression":{"arguments":[{"id":9571,"name":"_orgID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9559,"src":"783:6:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":9572,"name":"_registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9562,"src":"803:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":9573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5572,"src":"803:19:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9574,"name":"_registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9562,"src":"836:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":9575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"version","nodeType":"MemberAccess","referencedDeclaration":5570,"src":"836:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"}},{"expression":{"id":9576,"name":"_registration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9562,"src":"871:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo memory"}},"id":9577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"managerInitializerData","nodeType":"MemberAccess","referencedDeclaration":5574,"src":"871:36:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9568,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9546,"src":"740:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_ChugSplashRegistry_$8652","typeString":"contract ChugSplashRegistry"}},"id":9570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"finalizeRegistration","nodeType":"MemberAccess","referencedDeclaration":8497,"src":"740:29:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_struct$_Version_$5567_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,address,struct Version memory,bytes memory) external"}},"id":9578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"740:177:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9579,"nodeType":"ExpressionStatement","src":"740:177:47"}]},"functionSelector":"e787bc69","id":9581,"implemented":true,"kind":"function","modifiers":[],"name":"initiateRegistration","nameLocation":"585:20:47","nodeType":"FunctionDefinition","parameters":{"id":9566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9559,"mutability":"mutable","name":"_orgID","nameLocation":"623:6:47","nodeType":"VariableDeclaration","scope":9581,"src":"615:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"615:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9562,"mutability":"mutable","name":"_registration","nameLocation":"663:13:47","nodeType":"VariableDeclaration","scope":9581,"src":"639:37:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo"},"typeName":{"id":9561,"nodeType":"UserDefinedTypeName","pathNode":{"id":9560,"name":"RegistrationInfo","nodeType":"IdentifierPath","referencedDeclaration":5575,"src":"639:16:47"},"referencedDeclaration":5575,"src":"639:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_storage_ptr","typeString":"struct RegistrationInfo"}},"visibility":"internal"},{"constant":false,"id":9565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9581,"src":"686:28:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo"},"typeName":{"id":9564,"nodeType":"UserDefinedTypeName","pathNode":{"id":9563,"name":"CrossChainMessageInfo","nodeType":"IdentifierPath","referencedDeclaration":5560,"src":"686:21:47"},"referencedDeclaration":5560,"src":"686:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_storage_ptr","typeString":"struct CrossChainMessageInfo"}},"visibility":"internal"}],"src":"605:115:47"},"returnParameters":{"id":9567,"nodeType":"ParameterList","parameters":[],"src":"730:0:47"},"scope":9582,"src":"576:348:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9583,"src":"390:536:47","usedErrors":[]}],"src":"32:895:47"},"id":47},"contracts/interfaces/IChugSplashManager.sol":{"ast":{"absolutePath":"contracts/interfaces/IChugSplashManager.sol","exportedSymbols":{"ChugSplashTarget":[5542],"DeploymentState":[5519],"IChugSplashManager":[9711],"IChugSplashRegistry":[9774],"RawChugSplashAction":[5531],"Version":[5567]},"id":9712,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9584,"literals":["solidity",">=","0.7",".4","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:31:48"},{"id":9585,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"64:33:48"},{"absolutePath":"contracts/interfaces/IChugSplashRegistry.sol","file":"./IChugSplashRegistry.sol","id":9587,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9712,"sourceUnit":9775,"src":"99:64:48","symbolAliases":[{"foreign":{"id":9586,"name":"IChugSplashRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9774,"src":"108:19:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"../ChugSplashDataTypes.sol","id":9592,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9712,"sourceUnit":5617,"src":"164:125:48","symbolAliases":[{"foreign":{"id":9588,"name":"DeploymentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"177:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9589,"name":"RawChugSplashAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"198:19:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9590,"name":"ChugSplashTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"223:16:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9591,"name":"Version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"245:7:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IChugSplashManager","contractDependencies":[],"contractKind":"interface","documentation":{"id":9593,"nodeType":"StructuredDocumentation","src":"291:114:48","text":" @title ChugSplashManager\n @notice Interface that must be inherited by the ChugSplashManager contract."},"fullyImplemented":false,"id":9711,"linearizedBaseContracts":[9711],"name":"IChugSplashManager","nameLocation":"416:18:48","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9594,"nodeType":"StructuredDocumentation","src":"441:586:48","text":" @notice Initializes this contract. Must only be callable one time, which should occur\nimmediately after contract creation. This is necessary because this contract is meant to\nexist as an implementation behind proxies. Note that the implementation must be initialized\nwith all zero-bytes to prevent anyone from owning it.\n @param _data Arbitrary initialization data. This ensures that a consistent interface can be\nused to initialize future versions of the ChugSplashManager.\n @return Arbitrary bytes."},"functionSelector":"439fab91","id":9601,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1041:10:48","nodeType":"FunctionDefinition","parameters":{"id":9597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9596,"mutability":"mutable","name":"_data","nameLocation":"1065:5:48","nodeType":"VariableDeclaration","scope":9601,"src":"1052:18:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9595,"name":"bytes","nodeType":"ElementaryTypeName","src":"1052:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1051:20:48"},"returnParameters":{"id":9600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9601,"src":"1090:12:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9598,"name":"bytes","nodeType":"ElementaryTypeName","src":"1090:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1089:14:48"},"scope":9711,"src":"1032:72:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9602,"nodeType":"StructuredDocumentation","src":"1110:172:48","text":" @notice Indicates whether or not a deployment is currently being executed.\n @return Whether or not a deployment is currently being executed."},"functionSelector":"e8ea2d08","id":9607,"implemented":false,"kind":"function","modifiers":[],"name":"isExecuting","nameLocation":"1296:11:48","nodeType":"FunctionDefinition","parameters":{"id":9603,"nodeType":"ParameterList","parameters":[],"src":"1307:2:48"},"returnParameters":{"id":9606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9607,"src":"1333:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9604,"name":"bool","nodeType":"ElementaryTypeName","src":"1333:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1332:6:48"},"scope":9711,"src":"1287:52:48","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9608,"nodeType":"StructuredDocumentation","src":"1345:107:48","text":" @notice The ChugSplashRegistry.\n @return Address of the ChugSplashRegistry."},"functionSelector":"7b103999","id":9614,"implemented":false,"kind":"function","modifiers":[],"name":"registry","nameLocation":"1466:8:48","nodeType":"FunctionDefinition","parameters":{"id":9609,"nodeType":"ParameterList","parameters":[],"src":"1474:2:48"},"returnParameters":{"id":9613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9614,"src":"1500:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"},"typeName":{"id":9611,"nodeType":"UserDefinedTypeName","pathNode":{"id":9610,"name":"IChugSplashRegistry","nodeType":"IdentifierPath","referencedDeclaration":9774,"src":"1500:19:48"},"referencedDeclaration":9774,"src":"1500:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_IChugSplashRegistry_$9774","typeString":"contract IChugSplashRegistry"}},"visibility":"internal"}],"src":"1499:21:48"},"scope":9711,"src":"1457:64:48","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9615,"nodeType":"StructuredDocumentation","src":"1527:108:48","text":" @notice Organization ID for this contract.\n @return 32-byte organization ID."},"functionSelector":"f0317111","id":9620,"implemented":false,"kind":"function","modifiers":[],"name":"organizationID","nameLocation":"1649:14:48","nodeType":"FunctionDefinition","parameters":{"id":9616,"nodeType":"ParameterList","parameters":[],"src":"1663:2:48"},"returnParameters":{"id":9619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9620,"src":"1689:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1689:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1688:9:48"},"scope":9711,"src":"1640:58:48","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5229c975","id":9623,"implemented":false,"kind":"function","modifiers":[],"name":"cancelActiveChugSplashDeployment","nameLocation":"1713:32:48","nodeType":"FunctionDefinition","parameters":{"id":9621,"nodeType":"ParameterList","parameters":[],"src":"1745:2:48"},"returnParameters":{"id":9622,"nodeType":"ParameterList","parameters":[],"src":"1756:0:48"},"scope":9711,"src":"1704:53:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"75cd65e1","id":9632,"implemented":false,"kind":"function","modifiers":[],"name":"exportProxy","nameLocation":"1772:11:48","nodeType":"FunctionDefinition","parameters":{"id":9630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9625,"mutability":"mutable","name":"_proxy","nameLocation":"1809:6:48","nodeType":"VariableDeclaration","scope":9632,"src":"1793:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9624,"name":"address","nodeType":"ElementaryTypeName","src":"1793:15:48","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9627,"mutability":"mutable","name":"_contractKindHash","nameLocation":"1833:17:48","nodeType":"VariableDeclaration","scope":9632,"src":"1825:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1825:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9629,"mutability":"mutable","name":"_newOwner","nameLocation":"1868:9:48","nodeType":"VariableDeclaration","scope":9632,"src":"1860:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9628,"name":"address","nodeType":"ElementaryTypeName","src":"1860:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1783:100:48"},"returnParameters":{"id":9631,"nodeType":"ParameterList","parameters":[],"src":"1892:0:48"},"scope":9711,"src":"1763:130:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"74ec29a0","id":9639,"implemented":false,"kind":"function","modifiers":[],"name":"isProposer","nameLocation":"1908:10:48","nodeType":"FunctionDefinition","parameters":{"id":9635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9634,"mutability":"mutable","name":"_addr","nameLocation":"1927:5:48","nodeType":"VariableDeclaration","scope":9639,"src":"1919:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9633,"name":"address","nodeType":"ElementaryTypeName","src":"1919:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1918:15:48"},"returnParameters":{"id":9638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9639,"src":"1957:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9636,"name":"bool","nodeType":"ElementaryTypeName","src":"1957:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1956:6:48"},"scope":9711,"src":"1899:64:48","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a7882f93","id":9656,"implemented":false,"kind":"function","modifiers":[],"name":"propose","nameLocation":"1978:7:48","nodeType":"FunctionDefinition","parameters":{"id":9654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9641,"mutability":"mutable","name":"_actionRoot","nameLocation":"2003:11:48","nodeType":"VariableDeclaration","scope":9656,"src":"1995:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1995:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9643,"mutability":"mutable","name":"_targetRoot","nameLocation":"2032:11:48","nodeType":"VariableDeclaration","scope":9656,"src":"2024:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2024:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9645,"mutability":"mutable","name":"_numActions","nameLocation":"2061:11:48","nodeType":"VariableDeclaration","scope":9656,"src":"2053:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9644,"name":"uint256","nodeType":"ElementaryTypeName","src":"2053:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9647,"mutability":"mutable","name":"_numTargets","nameLocation":"2090:11:48","nodeType":"VariableDeclaration","scope":9656,"src":"2082:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9646,"name":"uint256","nodeType":"ElementaryTypeName","src":"2082:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9649,"mutability":"mutable","name":"_numImmutableContracts","nameLocation":"2119:22:48","nodeType":"VariableDeclaration","scope":9656,"src":"2111:30:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9648,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9651,"mutability":"mutable","name":"_configUri","nameLocation":"2165:10:48","nodeType":"VariableDeclaration","scope":9656,"src":"2151:24:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9650,"name":"string","nodeType":"ElementaryTypeName","src":"2151:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9653,"mutability":"mutable","name":"_remoteExecution","nameLocation":"2190:16:48","nodeType":"VariableDeclaration","scope":9656,"src":"2185:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9652,"name":"bool","nodeType":"ElementaryTypeName","src":"2185:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1985:227:48"},"returnParameters":{"id":9655,"nodeType":"ParameterList","parameters":[],"src":"2221:0:48"},"scope":9711,"src":"1969:253:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a53a1adf","id":9661,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2237:7:48","nodeType":"FunctionDefinition","parameters":{"id":9659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9658,"mutability":"mutable","name":"_deploymentId","nameLocation":"2253:13:48","nodeType":"VariableDeclaration","scope":9661,"src":"2245:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2245:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2244:23:48"},"returnParameters":{"id":9660,"nodeType":"ParameterList","parameters":[],"src":"2276:0:48"},"scope":9711,"src":"2228:49:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dfba66f0","id":9666,"implemented":false,"kind":"function","modifiers":[],"name":"activeDeploymentId","nameLocation":"2292:18:48","nodeType":"FunctionDefinition","parameters":{"id":9662,"nodeType":"ParameterList","parameters":[],"src":"2310:2:48"},"returnParameters":{"id":9665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9666,"src":"2336:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2336:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2335:9:48"},"scope":9711,"src":"2283:62:48","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"37404017","id":9674,"implemented":false,"kind":"function","modifiers":[],"name":"deployments","nameLocation":"2360:11:48","nodeType":"FunctionDefinition","parameters":{"id":9669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9668,"mutability":"mutable","name":"_deploymentId","nameLocation":"2380:13:48","nodeType":"VariableDeclaration","scope":9674,"src":"2372:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2372:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2371:23:48"},"returnParameters":{"id":9673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9674,"src":"2418:22:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_memory_ptr","typeString":"struct DeploymentState"},"typeName":{"id":9671,"nodeType":"UserDefinedTypeName","pathNode":{"id":9670,"name":"DeploymentState","nodeType":"IdentifierPath","referencedDeclaration":5519,"src":"2418:15:48"},"referencedDeclaration":5519,"src":"2418:15:48","typeDescriptions":{"typeIdentifier":"t_struct$_DeploymentState_$5519_storage_ptr","typeString":"struct DeploymentState"}},"visibility":"internal"}],"src":"2417:24:48"},"scope":9711,"src":"2351:91:48","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a47d0801","id":9688,"implemented":false,"kind":"function","modifiers":[],"name":"executeActions","nameLocation":"2457:14:48","nodeType":"FunctionDefinition","parameters":{"id":9686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9678,"mutability":"mutable","name":"_actions","nameLocation":"2510:8:48","nodeType":"VariableDeclaration","scope":9688,"src":"2481:37:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptr","typeString":"struct RawChugSplashAction[]"},"typeName":{"baseType":{"id":9676,"nodeType":"UserDefinedTypeName","pathNode":{"id":9675,"name":"RawChugSplashAction","nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"2481:19:48"},"referencedDeclaration":5531,"src":"2481:19:48","typeDescriptions":{"typeIdentifier":"t_struct$_RawChugSplashAction_$5531_storage_ptr","typeString":"struct RawChugSplashAction"}},"id":9677,"nodeType":"ArrayTypeName","src":"2481:21:48","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawChugSplashAction_$5531_storage_$dyn_storage_ptr","typeString":"struct RawChugSplashAction[]"}},"visibility":"internal"},{"constant":false,"id":9681,"mutability":"mutable","name":"_actionIndexes","nameLocation":"2545:14:48","nodeType":"VariableDeclaration","scope":9688,"src":"2528:31:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9679,"name":"uint256","nodeType":"ElementaryTypeName","src":"2528:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9680,"nodeType":"ArrayTypeName","src":"2528:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":9685,"mutability":"mutable","name":"_proofs","nameLocation":"2588:7:48","nodeType":"VariableDeclaration","scope":9688,"src":"2569:26:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":9682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2569:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9683,"nodeType":"ArrayTypeName","src":"2569:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":9684,"nodeType":"ArrayTypeName","src":"2569:11:48","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"2471:130:48"},"returnParameters":{"id":9687,"nodeType":"ParameterList","parameters":[],"src":"2610:0:48"},"scope":9711,"src":"2448:163:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9449a44f","id":9699,"implemented":false,"kind":"function","modifiers":[],"name":"initiateUpgrade","nameLocation":"2626:15:48","nodeType":"FunctionDefinition","parameters":{"id":9697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9692,"mutability":"mutable","name":"_targets","nameLocation":"2677:8:48","nodeType":"VariableDeclaration","scope":9699,"src":"2651:34:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget[]"},"typeName":{"baseType":{"id":9690,"nodeType":"UserDefinedTypeName","pathNode":{"id":9689,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"2651:16:48"},"referencedDeclaration":5542,"src":"2651:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"id":9691,"nodeType":"ArrayTypeName","src":"2651:18:48","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_storage_$dyn_storage_ptr","typeString":"struct ChugSplashTarget[]"}},"visibility":"internal"},{"constant":false,"id":9696,"mutability":"mutable","name":"_proofs","nameLocation":"2714:7:48","nodeType":"VariableDeclaration","scope":9699,"src":"2695:26:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":9693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2695:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9694,"nodeType":"ArrayTypeName","src":"2695:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":9695,"nodeType":"ArrayTypeName","src":"2695:11:48","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"2641:86:48"},"returnParameters":{"id":9698,"nodeType":"ParameterList","parameters":[],"src":"2736:0:48"},"scope":9711,"src":"2617:120:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f23d6142","id":9710,"implemented":false,"kind":"function","modifiers":[],"name":"finalizeUpgrade","nameLocation":"2752:15:48","nodeType":"FunctionDefinition","parameters":{"id":9708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9703,"mutability":"mutable","name":"_targets","nameLocation":"2803:8:48","nodeType":"VariableDeclaration","scope":9710,"src":"2777:34:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptr","typeString":"struct ChugSplashTarget[]"},"typeName":{"baseType":{"id":9701,"nodeType":"UserDefinedTypeName","pathNode":{"id":9700,"name":"ChugSplashTarget","nodeType":"IdentifierPath","referencedDeclaration":5542,"src":"2777:16:48"},"referencedDeclaration":5542,"src":"2777:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_ChugSplashTarget_$5542_storage_ptr","typeString":"struct ChugSplashTarget"}},"id":9702,"nodeType":"ArrayTypeName","src":"2777:18:48","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChugSplashTarget_$5542_storage_$dyn_storage_ptr","typeString":"struct ChugSplashTarget[]"}},"visibility":"internal"},{"constant":false,"id":9707,"mutability":"mutable","name":"_proofs","nameLocation":"2840:7:48","nodeType":"VariableDeclaration","scope":9710,"src":"2821:26:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":9704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2821:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9705,"nodeType":"ArrayTypeName","src":"2821:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":9706,"nodeType":"ArrayTypeName","src":"2821:11:48","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"2767:86:48"},"returnParameters":{"id":9709,"nodeType":"ParameterList","parameters":[],"src":"2862:0:48"},"scope":9711,"src":"2743:120:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9712,"src":"406:2459:48","usedErrors":[]}],"src":"32:2834:48"},"id":48},"contracts/interfaces/IChugSplashRegistry.sol":{"ast":{"absolutePath":"contracts/interfaces/IChugSplashRegistry.sol","exportedSymbols":{"IChugSplashRegistry":[9774],"Version":[5567]},"id":9775,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9713,"literals":["solidity",">=","0.7",".4","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:31:49"},{"id":9714,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"64:33:49"},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"../ChugSplashDataTypes.sol","id":9716,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9775,"sourceUnit":5617,"src":"99:53:49","symbolAliases":[{"foreign":{"id":9715,"name":"Version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5567,"src":"108:7:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IChugSplashRegistry","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":9774,"linearizedBaseContracts":[9774],"name":"IChugSplashRegistry","nameLocation":"164:19:49","nodeType":"ContractDefinition","nodes":[{"functionSelector":"b96ea12d","id":9723,"implemented":false,"kind":"function","modifiers":[],"name":"projects","nameLocation":"199:8:49","nodeType":"FunctionDefinition","parameters":{"id":9719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9723,"src":"208:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"208:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"207:9:49"},"returnParameters":{"id":9722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9723,"src":"240:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9720,"name":"address","nodeType":"ElementaryTypeName","src":"240:15:49","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"239:17:49"},"scope":9774,"src":"190:67:49","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"31662fd6","id":9735,"implemented":false,"kind":"function","modifiers":[],"name":"finalizeRegistration","nameLocation":"272:20:49","nodeType":"FunctionDefinition","parameters":{"id":9733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9725,"mutability":"mutable","name":"_organizationID","nameLocation":"310:15:49","nodeType":"VariableDeclaration","scope":9735,"src":"302:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9727,"mutability":"mutable","name":"_owner","nameLocation":"343:6:49","nodeType":"VariableDeclaration","scope":9735,"src":"335:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9726,"name":"address","nodeType":"ElementaryTypeName","src":"335:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9730,"mutability":"mutable","name":"_version","nameLocation":"374:8:49","nodeType":"VariableDeclaration","scope":9735,"src":"359:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_memory_ptr","typeString":"struct Version"},"typeName":{"id":9729,"nodeType":"UserDefinedTypeName","pathNode":{"id":9728,"name":"Version","nodeType":"IdentifierPath","referencedDeclaration":5567,"src":"359:7:49"},"referencedDeclaration":5567,"src":"359:7:49","typeDescriptions":{"typeIdentifier":"t_struct$_Version_$5567_storage_ptr","typeString":"struct Version"}},"visibility":"internal"},{"constant":false,"id":9732,"mutability":"mutable","name":"_data","nameLocation":"405:5:49","nodeType":"VariableDeclaration","scope":9735,"src":"392:18:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9731,"name":"bytes","nodeType":"ElementaryTypeName","src":"392:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"292:124:49"},"returnParameters":{"id":9734,"nodeType":"ParameterList","parameters":[],"src":"425:0:49"},"scope":9774,"src":"263:163:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b696e7fa","id":9742,"implemented":false,"kind":"function","modifiers":[],"name":"managerProxies","nameLocation":"441:14:49","nodeType":"FunctionDefinition","parameters":{"id":9738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9742,"src":"456:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9736,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"455:9:49"},"returnParameters":{"id":9741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9742,"src":"488:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9739,"name":"bool","nodeType":"ElementaryTypeName","src":"488:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"487:6:49"},"scope":9774,"src":"432:62:49","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4b67f1a8","id":9749,"implemented":false,"kind":"function","modifiers":[],"name":"addContractKind","nameLocation":"509:15:49","nodeType":"FunctionDefinition","parameters":{"id":9747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9744,"mutability":"mutable","name":"_contractKindHash","nameLocation":"533:17:49","nodeType":"VariableDeclaration","scope":9749,"src":"525:25:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"525:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9746,"mutability":"mutable","name":"_adapter","nameLocation":"560:8:49","nodeType":"VariableDeclaration","scope":9749,"src":"552:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9745,"name":"address","nodeType":"ElementaryTypeName","src":"552:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"524:45:49"},"returnParameters":{"id":9748,"nodeType":"ParameterList","parameters":[],"src":"578:0:49"},"scope":9774,"src":"500:79:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"11cdf27a","id":9754,"implemented":false,"kind":"function","modifiers":[],"name":"addVersion","nameLocation":"594:10:49","nodeType":"FunctionDefinition","parameters":{"id":9752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9751,"mutability":"mutable","name":"_manager","nameLocation":"613:8:49","nodeType":"VariableDeclaration","scope":9754,"src":"605:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9750,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"604:18:49"},"returnParameters":{"id":9753,"nodeType":"ParameterList","parameters":[],"src":"631:0:49"},"scope":9774,"src":"585:47:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ea0a5237","id":9759,"implemented":false,"kind":"function","modifiers":[],"name":"announce","nameLocation":"647:8:49","nodeType":"FunctionDefinition","parameters":{"id":9757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9756,"mutability":"mutable","name":"_event","nameLocation":"670:6:49","nodeType":"VariableDeclaration","scope":9759,"src":"656:20:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9755,"name":"string","nodeType":"ElementaryTypeName","src":"656:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"655:22:49"},"returnParameters":{"id":9758,"nodeType":"ParameterList","parameters":[],"src":"686:0:49"},"scope":9774,"src":"638:49:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f52cc7fd","id":9766,"implemented":false,"kind":"function","modifiers":[],"name":"announceWithData","nameLocation":"702:16:49","nodeType":"FunctionDefinition","parameters":{"id":9764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9761,"mutability":"mutable","name":"_event","nameLocation":"733:6:49","nodeType":"VariableDeclaration","scope":9766,"src":"719:20:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9760,"name":"string","nodeType":"ElementaryTypeName","src":"719:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9763,"mutability":"mutable","name":"_data","nameLocation":"754:5:49","nodeType":"VariableDeclaration","scope":9766,"src":"741:18:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9762,"name":"bytes","nodeType":"ElementaryTypeName","src":"741:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"718:42:49"},"returnParameters":{"id":9765,"nodeType":"ParameterList","parameters":[],"src":"769:0:49"},"scope":9774,"src":"693:77:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"72c6838f","id":9773,"implemented":false,"kind":"function","modifiers":[],"name":"adapters","nameLocation":"785:8:49","nodeType":"FunctionDefinition","parameters":{"id":9769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9773,"src":"794:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"794:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"793:9:49"},"returnParameters":{"id":9772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9773,"src":"826:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9770,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"825:9:49"},"scope":9774,"src":"776:59:49","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9775,"src":"154:683:49","usedErrors":[]}],"src":"32:806:49"},"id":49},"contracts/interfaces/ICreate3.sol":{"ast":{"absolutePath":"contracts/interfaces/ICreate3.sol","exportedSymbols":{"ICreate3":[9805]},"id":9806,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9776,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:50"},{"abstract":false,"baseContracts":[],"canonicalName":"ICreate3","contractDependencies":[],"contractKind":"interface","documentation":{"id":9777,"nodeType":"StructuredDocumentation","src":"58:455:50","text":" @title ICreate3\n @notice Interface for a Create3 contract. Normally, this functionality would in a library.\nInstead, we put it in a contract so that other contracts can use non-standard Create3 formulas in\na modular way. If we opted for a library to implement this functionality, we would need separate\ncopies of each contract that uses the library, where each contract would use a different\nimplementation of the Create3 formula."},"fullyImplemented":false,"id":9805,"linearizedBaseContracts":[9805],"name":"ICreate3","nameLocation":"524:8:50","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c7aeef0f","id":9788,"implemented":false,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"612:6:50","nodeType":"FunctionDefinition","parameters":{"id":9784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9779,"mutability":"mutable","name":"_salt","nameLocation":"636:5:50","nodeType":"VariableDeclaration","scope":9788,"src":"628:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"628:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9781,"mutability":"mutable","name":"_creationCode","nameLocation":"664:13:50","nodeType":"VariableDeclaration","scope":9788,"src":"651:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9780,"name":"bytes","nodeType":"ElementaryTypeName","src":"651:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9783,"mutability":"mutable","name":"_value","nameLocation":"695:6:50","nodeType":"VariableDeclaration","scope":9788,"src":"687:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9782,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"618:89:50"},"returnParameters":{"id":9787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9786,"mutability":"mutable","name":"deployed","nameLocation":"734:8:50","nodeType":"VariableDeclaration","scope":9788,"src":"726:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9785,"name":"address","nodeType":"ElementaryTypeName","src":"726:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"725:18:50"},"scope":9805,"src":"603:141:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"21f8a721","id":9795,"implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"759:10:50","nodeType":"FunctionDefinition","parameters":{"id":9791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9790,"mutability":"mutable","name":"_salt","nameLocation":"778:5:50","nodeType":"VariableDeclaration","scope":9795,"src":"770:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"770:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"769:15:50"},"returnParameters":{"id":9794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9795,"src":"808:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9792,"name":"address","nodeType":"ElementaryTypeName","src":"808:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"807:9:50"},"scope":9805,"src":"750:67:50","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e4e13140","id":9804,"implemented":false,"kind":"function","modifiers":[],"name":"getAddressFromDeployer","nameLocation":"832:22:50","nodeType":"FunctionDefinition","parameters":{"id":9800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9797,"mutability":"mutable","name":"_salt","nameLocation":"872:5:50","nodeType":"VariableDeclaration","scope":9804,"src":"864:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"864:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9799,"mutability":"mutable","name":"_deployer","nameLocation":"895:9:50","nodeType":"VariableDeclaration","scope":9804,"src":"887:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9798,"name":"address","nodeType":"ElementaryTypeName","src":"887:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"854:56:50"},"returnParameters":{"id":9803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9804,"src":"934:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9801,"name":"address","nodeType":"ElementaryTypeName","src":"934:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"933:9:50"},"scope":9805,"src":"823:120:50","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9806,"src":"514:431:50","usedErrors":[]}],"src":"32:914:50"},"id":50},"contracts/interfaces/ICrossChainAdapter.sol":{"ast":{"absolutePath":"contracts/interfaces/ICrossChainAdapter.sol","exportedSymbols":{"CrossChainMessageInfo":[5560],"ICrossChainAdapter":[9823],"RegistrationInfo":[5575]},"id":9824,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9807,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:51"},{"absolutePath":"contracts/ChugSplashDataTypes.sol","file":"../ChugSplashDataTypes.sol","id":9810,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9824,"sourceUnit":5617,"src":"58:85:51","symbolAliases":[{"foreign":{"id":9808,"name":"RegistrationInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"67:16:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9809,"name":"CrossChainMessageInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5560,"src":"85:21:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ICrossChainAdapter","contractDependencies":[],"contractKind":"interface","documentation":{"id":9811,"nodeType":"StructuredDocumentation","src":"145:36:51","text":" @title ICrossChainAdapter"},"fullyImplemented":false,"id":9823,"linearizedBaseContracts":[9823],"name":"ICrossChainAdapter","nameLocation":"192:18:51","nodeType":"ContractDefinition","nodes":[{"functionSelector":"e787bc69","id":9822,"implemented":false,"kind":"function","modifiers":[],"name":"initiateRegistration","nameLocation":"226:20:51","nodeType":"FunctionDefinition","parameters":{"id":9820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9813,"mutability":"mutable","name":"_orgID","nameLocation":"264:6:51","nodeType":"VariableDeclaration","scope":9822,"src":"256:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"256:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9816,"mutability":"mutable","name":"_registration","nameLocation":"304:13:51","nodeType":"VariableDeclaration","scope":9822,"src":"280:37:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_memory_ptr","typeString":"struct RegistrationInfo"},"typeName":{"id":9815,"nodeType":"UserDefinedTypeName","pathNode":{"id":9814,"name":"RegistrationInfo","nodeType":"IdentifierPath","referencedDeclaration":5575,"src":"280:16:51"},"referencedDeclaration":5575,"src":"280:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_RegistrationInfo_$5575_storage_ptr","typeString":"struct RegistrationInfo"}},"visibility":"internal"},{"constant":false,"id":9819,"mutability":"mutable","name":"_message","nameLocation":"356:8:51","nodeType":"VariableDeclaration","scope":9822,"src":"327:37:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_memory_ptr","typeString":"struct CrossChainMessageInfo"},"typeName":{"id":9818,"nodeType":"UserDefinedTypeName","pathNode":{"id":9817,"name":"CrossChainMessageInfo","nodeType":"IdentifierPath","referencedDeclaration":5560,"src":"327:21:51"},"referencedDeclaration":5560,"src":"327:21:51","typeDescriptions":{"typeIdentifier":"t_struct$_CrossChainMessageInfo_$5560_storage_ptr","typeString":"struct CrossChainMessageInfo"}},"visibility":"internal"}],"src":"246:124:51"},"returnParameters":{"id":9821,"nodeType":"ParameterList","parameters":[],"src":"379:0:51"},"scope":9823,"src":"217:163:51","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9824,"src":"182:200:51","usedErrors":[]}],"src":"32:351:51"},"id":51},"contracts/interfaces/IGasPriceCalculator.sol":{"ast":{"absolutePath":"contracts/interfaces/IGasPriceCalculator.sol","exportedSymbols":{"IGasPriceCalculator":[9833]},"id":9834,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9825,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:52"},{"abstract":false,"baseContracts":[],"canonicalName":"IGasPriceCalculator","contractDependencies":[],"contractKind":"interface","documentation":{"id":9826,"nodeType":"StructuredDocumentation","src":"58:293:52","text":" @title IGasPriceCalculator\n @notice Interface for a contract that calculates the gas price of a transaction. This is simply\n`tx.gasprice` on Ethereum and networks that have the same semantics for `tx.gasprice`. On other\nchains, however, a non-standard gas price may be used."},"fullyImplemented":false,"id":9833,"linearizedBaseContracts":[9833],"name":"IGasPriceCalculator","nameLocation":"362:19:52","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9827,"nodeType":"StructuredDocumentation","src":"388:140:52","text":" @notice Returns the gas price of the current transaction.\n @return The gas price of the current transaction."},"functionSelector":"455259cb","id":9832,"implemented":false,"kind":"function","modifiers":[],"name":"getGasPrice","nameLocation":"542:11:52","nodeType":"FunctionDefinition","parameters":{"id":9828,"nodeType":"ParameterList","parameters":[],"src":"553:2:52"},"returnParameters":{"id":9831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9832,"src":"579:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9829,"name":"uint256","nodeType":"ElementaryTypeName","src":"579:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"578:9:52"},"scope":9833,"src":"533:55:52","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9834,"src":"352:238:52","usedErrors":[]}],"src":"32:559:52"},"id":52},"contracts/interfaces/IOwnable.sol":{"ast":{"absolutePath":"contracts/interfaces/IOwnable.sol","exportedSymbols":{"IOwnable":[9849]},"id":9850,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9835,"literals":["solidity",">=","0.7",".4","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:31:53"},{"abstract":false,"baseContracts":[],"canonicalName":"IOwnable","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":9849,"linearizedBaseContracts":[9849],"name":"IOwnable","nameLocation":"75:8:53","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8da5cb5b","id":9840,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"99:5:53","nodeType":"FunctionDefinition","parameters":{"id":9836,"nodeType":"ParameterList","parameters":[],"src":"104:2:53"},"returnParameters":{"id":9839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9840,"src":"130:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9837,"name":"address","nodeType":"ElementaryTypeName","src":"130:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"129:9:53"},"scope":9849,"src":"90:49:53","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"715018a6","id":9843,"implemented":false,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"154:17:53","nodeType":"FunctionDefinition","parameters":{"id":9841,"nodeType":"ParameterList","parameters":[],"src":"171:2:53"},"returnParameters":{"id":9842,"nodeType":"ParameterList","parameters":[],"src":"182:0:53"},"scope":9849,"src":"145:38:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":9848,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"198:17:53","nodeType":"FunctionDefinition","parameters":{"id":9846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9845,"mutability":"mutable","name":"newOwner","nameLocation":"224:8:53","nodeType":"VariableDeclaration","scope":9848,"src":"216:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9844,"name":"address","nodeType":"ElementaryTypeName","src":"216:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"215:18:53"},"returnParameters":{"id":9847,"nodeType":"ParameterList","parameters":[],"src":"242:0:53"},"scope":9849,"src":"189:54:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9850,"src":"65:180:53","usedErrors":[]}],"src":"32:214:53"},"id":53},"contracts/interfaces/IProxyAdapter.sol":{"ast":{"absolutePath":"contracts/interfaces/IProxyAdapter.sol","exportedSymbols":{"IProxyAdapter":[9887]},"id":9888,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9851,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:54"},{"abstract":false,"baseContracts":[],"canonicalName":"IProxyAdapter","contractDependencies":[],"contractKind":"interface","documentation":{"id":9852,"nodeType":"StructuredDocumentation","src":"58:250:54","text":" @title IProxyAdapter\n @notice Interface that must be inherited by each proxy adapter. Proxy adapters allow other\ncontracts to delegatecall into proxies of different types (e.g. Transparent, UUPS, etc.) through\na standard interface."},"fullyImplemented":false,"id":9887,"linearizedBaseContracts":[9887],"name":"IProxyAdapter","nameLocation":"319:13:54","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9853,"nodeType":"StructuredDocumentation","src":"339:121:54","text":" @notice Initiate a deployment or upgrade of a proxy.\n @param _proxy Address of the proxy."},"functionSelector":"479aa927","id":9858,"implemented":false,"kind":"function","modifiers":[],"name":"initiateUpgrade","nameLocation":"474:15:54","nodeType":"FunctionDefinition","parameters":{"id":9856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9855,"mutability":"mutable","name":"_proxy","nameLocation":"506:6:54","nodeType":"VariableDeclaration","scope":9858,"src":"490:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9854,"name":"address","nodeType":"ElementaryTypeName","src":"490:15:54","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"489:24:54"},"returnParameters":{"id":9857,"nodeType":"ParameterList","parameters":[],"src":"522:0:54"},"scope":9887,"src":"465:58:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9859,"nodeType":"StructuredDocumentation","src":"529:205:54","text":" @notice Complete a deployment or upgrade of a proxy.\n @param _proxy          Address of the proxy.\n @param _implementation Address of the proxy's final implementation."},"functionSelector":"192957c8","id":9866,"implemented":false,"kind":"function","modifiers":[],"name":"finalizeUpgrade","nameLocation":"748:15:54","nodeType":"FunctionDefinition","parameters":{"id":9864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9861,"mutability":"mutable","name":"_proxy","nameLocation":"780:6:54","nodeType":"VariableDeclaration","scope":9866,"src":"764:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9860,"name":"address","nodeType":"ElementaryTypeName","src":"764:15:54","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9863,"mutability":"mutable","name":"_implementation","nameLocation":"796:15:54","nodeType":"VariableDeclaration","scope":9866,"src":"788:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9862,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"763:49:54"},"returnParameters":{"id":9865,"nodeType":"ParameterList","parameters":[],"src":"821:0:54"},"scope":9887,"src":"739:83:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9867,"nodeType":"StructuredDocumentation","src":"828:585:54","text":" @notice Sets a proxy's storage slot value at a given storage slot key and offset.\n @param _proxy  Address of the proxy to modify.\n @param _key     Storage slot key to modify.\n @param _offset  Bytes offset of the new storage slot value from the right side of the storage\nslot. An offset of 0 means the new value will start at the right-most byte of the storage\nslot.\n @param _value New value of the storage slot at the given key and offset. The length of the\nvalue is in the range [1, 32] (inclusive)."},"functionSelector":"9bc6ee9a","id":9878,"implemented":false,"kind":"function","modifiers":[],"name":"setStorage","nameLocation":"1427:10:54","nodeType":"FunctionDefinition","parameters":{"id":9876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9869,"mutability":"mutable","name":"_proxy","nameLocation":"1463:6:54","nodeType":"VariableDeclaration","scope":9878,"src":"1447:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9868,"name":"address","nodeType":"ElementaryTypeName","src":"1447:15:54","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9871,"mutability":"mutable","name":"_key","nameLocation":"1487:4:54","nodeType":"VariableDeclaration","scope":9878,"src":"1479:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1479:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9873,"mutability":"mutable","name":"_offset","nameLocation":"1507:7:54","nodeType":"VariableDeclaration","scope":9878,"src":"1501:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9872,"name":"uint8","nodeType":"ElementaryTypeName","src":"1501:5:54","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9875,"mutability":"mutable","name":"_value","nameLocation":"1537:6:54","nodeType":"VariableDeclaration","scope":9878,"src":"1524:19:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9874,"name":"bytes","nodeType":"ElementaryTypeName","src":"1524:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1437:112:54"},"returnParameters":{"id":9877,"nodeType":"ParameterList","parameters":[],"src":"1558:0:54"},"scope":9887,"src":"1418:141:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9879,"nodeType":"StructuredDocumentation","src":"1565:407:54","text":" @notice Changes the admin of the proxy. Note that this function is not triggered during a\ndeployment. Instead, it's only triggered if transferring ownership of the UUPS proxy\naway from the ChugSplashManager, which occurs outside of the deployment process.\n @param _proxy    Address of the proxy.\n @param _newAdmin Address of the new admin."},"functionSelector":"7eff275e","id":9886,"implemented":false,"kind":"function","modifiers":[],"name":"changeProxyAdmin","nameLocation":"1986:16:54","nodeType":"FunctionDefinition","parameters":{"id":9884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9881,"mutability":"mutable","name":"_proxy","nameLocation":"2019:6:54","nodeType":"VariableDeclaration","scope":9886,"src":"2003:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9880,"name":"address","nodeType":"ElementaryTypeName","src":"2003:15:54","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9883,"mutability":"mutable","name":"_newAdmin","nameLocation":"2035:9:54","nodeType":"VariableDeclaration","scope":9886,"src":"2027:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9882,"name":"address","nodeType":"ElementaryTypeName","src":"2027:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2002:43:54"},"returnParameters":{"id":9885,"nodeType":"ParameterList","parameters":[],"src":"2054:0:54"},"scope":9887,"src":"1977:78:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9888,"src":"309:1748:54","usedErrors":[]}],"src":"32:2026:54"},"id":54},"contracts/interfaces/IProxyUpdater.sol":{"ast":{"absolutePath":"contracts/interfaces/IProxyUpdater.sol","exportedSymbols":{"IProxyUpdater":[9901]},"id":9902,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9889,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:55"},{"abstract":false,"baseContracts":[],"canonicalName":"IProxyUpdater","contractDependencies":[],"contractKind":"interface","documentation":{"id":9890,"nodeType":"StructuredDocumentation","src":"58:343:55","text":" @title IProxyUpdater\n @notice Interface that must be inherited by each proxy updater. Contracts that\ninherit from this interface are meant to be set as the implementation of a proxy during\nan upgrade, then delegatecalled by the proxy's owner to change the value of a storage\nslot within the proxy."},"fullyImplemented":false,"id":9901,"linearizedBaseContracts":[9901],"name":"IProxyUpdater","nameLocation":"412:13:55","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9891,"nodeType":"StructuredDocumentation","src":"432:531:55","text":" @notice Sets a proxy's storage slot value at a given storage slot key and offset.\n @param _key     Storage slot key to modify.\n @param _offset  Bytes offset of the new storage slot value from the right side of the storage\nslot. An offset of 0 means the new value will start at the right-most byte of the storage\nslot.\n @param _value New value of the storage slot at the given key and offset. The length of the\nvalue is in the range [1, 32] (inclusive)."},"functionSelector":"1ea94702","id":9900,"implemented":false,"kind":"function","modifiers":[],"name":"setStorage","nameLocation":"977:10:55","nodeType":"FunctionDefinition","parameters":{"id":9898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9893,"mutability":"mutable","name":"_key","nameLocation":"996:4:55","nodeType":"VariableDeclaration","scope":9900,"src":"988:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"988:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9895,"mutability":"mutable","name":"_offset","nameLocation":"1008:7:55","nodeType":"VariableDeclaration","scope":9900,"src":"1002:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9894,"name":"uint8","nodeType":"ElementaryTypeName","src":"1002:5:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9897,"mutability":"mutable","name":"_value","nameLocation":"1030:6:55","nodeType":"VariableDeclaration","scope":9900,"src":"1017:19:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9896,"name":"bytes","nodeType":"ElementaryTypeName","src":"1017:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"987:50:55"},"returnParameters":{"id":9899,"nodeType":"ParameterList","parameters":[],"src":"1046:0:55"},"scope":9901,"src":"968:79:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9902,"src":"402:647:55","usedErrors":[]}],"src":"32:1018:55"},"id":55},"contracts/updaters/DefaultUpdater.sol":{"ast":{"absolutePath":"contracts/updaters/DefaultUpdater.sol","exportedSymbols":{"DefaultUpdater":[9970],"ProxyUpdater":[10261]},"id":9971,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9903,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:56"},{"absolutePath":"contracts/updaters/ProxyUpdater.sol","file":"./ProxyUpdater.sol","id":9905,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9971,"sourceUnit":10262,"src":"58:50:56","symbolAliases":[{"foreign":{"id":9904,"name":"ProxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10261,"src":"67:12:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9907,"name":"ProxyUpdater","nodeType":"IdentifierPath","referencedDeclaration":10261,"src":"304:12:56"},"id":9908,"nodeType":"InheritanceSpecifier","src":"304:12:56"}],"canonicalName":"DefaultUpdater","contractDependencies":[],"contractKind":"contract","documentation":{"id":9906,"nodeType":"StructuredDocumentation","src":"110:166:56","text":" @title DefaultUpdater\n @notice Proxy updater that works with Transparent proxies, including the default Proxy contracts\nused in the ChugSplash system."},"fullyImplemented":true,"id":9970,"linearizedBaseContracts":[9970,10261,9901],"name":"DefaultUpdater","nameLocation":"286:14:56","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":9909,"nodeType":"StructuredDocumentation","src":"323:150:56","text":" @notice The storage slot that holds the address of the owner.\n         bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)"},"id":9912,"mutability":"constant","name":"OWNER_KEY","nameLocation":"504:9:56","nodeType":"VariableDeclaration","scope":9970,"src":"478:112:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"478:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":9911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"524:66:56","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"body":{"id":9933,"nodeType":"Block","src":"951:163:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9916,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"982:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"982:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9918,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9969,"src":"996:9:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"996:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"982:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9921,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1011:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1011:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":9925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1033: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":9924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1025:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9923,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:56","typeDescriptions":{}}},"id":9926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1025:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1011:24:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"982:53:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"44656661756c74557064617465723a2063616c6c6572206973206e6f742061646d696e","id":9929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1049:37:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_04eba2f101981f474d9dcc87f979092f9f0c776b60211999e448eaa7f12d3e13","typeString":"literal_string \"DefaultUpdater: caller is not admin\""},"value":"DefaultUpdater: caller is not admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04eba2f101981f474d9dcc87f979092f9f0c776b60211999e448eaa7f12d3e13","typeString":"literal_string \"DefaultUpdater: caller is not admin\""}],"id":9915,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"961:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"961:135:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9931,"nodeType":"ExpressionStatement","src":"961:135:56"},{"id":9932,"nodeType":"PlaceholderStatement","src":"1106:1:56"}]},"documentation":{"id":9913,"nodeType":"StructuredDocumentation","src":"597:330:56","text":" @notice A modifier that reverts if not called by the owner or by address(0) to allow\n         eth_call to interact with this proxy without needing to use low-level storage\n         inspection. We assume that nobody is able to trigger calls from address(0) during\n         normal EVM execution."},"id":9934,"name":"ifAdmin","nameLocation":"941:7:56","nodeType":"ModifierDefinition","parameters":{"id":9914,"nodeType":"ParameterList","parameters":[],"src":"948:2:56"},"src":"932:182:56","virtual":false,"visibility":"internal"},{"baseFunctions":[10260],"body":{"id":9955,"nodeType":"Block","src":"1297:56:56","statements":[{"expression":{"arguments":[{"id":9950,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9937,"src":"1324:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9951,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9939,"src":"1330:7:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9952,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9941,"src":"1339:6:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9947,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1307:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_DefaultUpdater_$9970_$","typeString":"type(contract super DefaultUpdater)"}},"id":9949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setStorage","nodeType":"MemberAccess","referencedDeclaration":10260,"src":"1307:16:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint8,bytes memory)"}},"id":9953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1307:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9954,"nodeType":"ExpressionStatement","src":"1307:39:56"}]},"documentation":{"id":9935,"nodeType":"StructuredDocumentation","src":"1120:78:56","text":" Only callable by the owner.\n @inheritdoc ProxyUpdater"},"functionSelector":"1ea94702","id":9956,"implemented":true,"kind":"function","modifiers":[{"id":9945,"kind":"modifierInvocation","modifierName":{"id":9944,"name":"ifAdmin","nodeType":"IdentifierPath","referencedDeclaration":9934,"src":"1289:7:56"},"nodeType":"ModifierInvocation","src":"1289:7:56"}],"name":"setStorage","nameLocation":"1212:10:56","nodeType":"FunctionDefinition","overrides":{"id":9943,"nodeType":"OverrideSpecifier","overrides":[],"src":"1280:8:56"},"parameters":{"id":9942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9937,"mutability":"mutable","name":"_key","nameLocation":"1231:4:56","nodeType":"VariableDeclaration","scope":9956,"src":"1223:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9936,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1223:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9939,"mutability":"mutable","name":"_offset","nameLocation":"1243:7:56","nodeType":"VariableDeclaration","scope":9956,"src":"1237:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9938,"name":"uint8","nodeType":"ElementaryTypeName","src":"1237:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9941,"mutability":"mutable","name":"_value","nameLocation":"1265:6:56","nodeType":"VariableDeclaration","scope":9956,"src":"1252:19:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9940,"name":"bytes","nodeType":"ElementaryTypeName","src":"1252:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1222:50:56"},"returnParameters":{"id":9946,"nodeType":"ParameterList","parameters":[],"src":"1297:0:56"},"scope":9970,"src":"1203:150:56","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9968,"nodeType":"Block","src":"1521:119:56","statements":[{"assignments":[9963],"declarations":[{"constant":false,"id":9963,"mutability":"mutable","name":"owner","nameLocation":"1539:5:56","nodeType":"VariableDeclaration","scope":9968,"src":"1531:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9962,"name":"address","nodeType":"ElementaryTypeName","src":"1531:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9964,"nodeType":"VariableDeclarationStatement","src":"1531:13:56"},{"AST":{"nodeType":"YulBlock","src":"1563:49:56","statements":[{"nodeType":"YulAssignment","src":"1577:25:56","value":{"arguments":[{"name":"OWNER_KEY","nodeType":"YulIdentifier","src":"1592:9:56"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1586:5:56"},"nodeType":"YulFunctionCall","src":"1586:16:56"},"variableNames":[{"name":"owner","nodeType":"YulIdentifier","src":"1577:5:56"}]}]},"evmVersion":"london","externalReferences":[{"declaration":9912,"isOffset":false,"isSlot":false,"src":"1592:9:56","valueSize":1},{"declaration":9963,"isOffset":false,"isSlot":false,"src":"1577:5:56","valueSize":1}],"id":9965,"nodeType":"InlineAssembly","src":"1554:58:56"},{"expression":{"id":9966,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9963,"src":"1628:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9961,"id":9967,"nodeType":"Return","src":"1621:12:56"}]},"documentation":{"id":9957,"nodeType":"StructuredDocumentation","src":"1359:104:56","text":" @notice Queries the owner of the proxy contract.\n @return Owner address."},"id":9969,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"1477:9:56","nodeType":"FunctionDefinition","parameters":{"id":9958,"nodeType":"ParameterList","parameters":[],"src":"1486:2:56"},"returnParameters":{"id":9961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9969,"src":"1512:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9959,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1511:9:56"},"scope":9970,"src":"1468:172:56","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":9971,"src":"277:1365:56","usedErrors":[]}],"src":"32:1611:56"},"id":56},"contracts/updaters/OZUUPSUpdater.sol":{"ast":{"absolutePath":"contracts/updaters/OZUUPSUpdater.sol","exportedSymbols":{"OZUUPSUpdater":[10151],"ProxyUpdater":[10261]},"id":10152,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9972,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:57"},{"absolutePath":"contracts/updaters/ProxyUpdater.sol","file":"./ProxyUpdater.sol","id":9974,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10152,"sourceUnit":10262,"src":"58:50:57","symbolAliases":[{"foreign":{"id":9973,"name":"ProxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10261,"src":"67:12:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9976,"name":"ProxyUpdater","nodeType":"IdentifierPath","referencedDeclaration":10261,"src":"610:12:57"},"id":9977,"nodeType":"InheritanceSpecifier","src":"610:12:57"}],"canonicalName":"OZUUPSUpdater","contractDependencies":[],"contractKind":"contract","documentation":{"id":9975,"nodeType":"StructuredDocumentation","src":"110:473:57","text":" @title OZUUPSUdater\n @notice Proxy updater that works with OpenZeppelin UUPS proxies. This contract uses a special\nstorage slot key called the `CHUGSPLASH_ADMIN_KEY` which stores the owner address for the\nduration of the upgrade. This is a convenient way to keep track of the admin during the upgrade\nbecause OpenZeppelin UUPS proxies do not have a standard ownership mechanism. When the upgrade\nis finished, this key is set back to address(0)."},"fullyImplemented":true,"id":10151,"linearizedBaseContracts":[10151,10261,9901],"name":"OZUUPSUpdater","nameLocation":"593:13:57","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":9978,"nodeType":"StructuredDocumentation","src":"629:168:57","text":" @notice The storage slot that holds the address of the implementation.\n         bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)"},"id":9981,"mutability":"constant","name":"IMPLEMENTATION_KEY","nameLocation":"828:18:57","nodeType":"VariableDeclaration","scope":10151,"src":"802:121:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"802:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":9980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:66:57","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"constant":true,"documentation":{"id":9982,"nodeType":"StructuredDocumentation","src":"930:164:57","text":" @notice The storage slot that holds the address of the ChugSplash admin.\n         bytes32(uint256(keccak256('chugsplash.proxy.admin')) - 1)"},"id":9985,"mutability":"constant","name":"CHUGSPLASH_ADMIN_KEY","nameLocation":"1125:20:57","nodeType":"VariableDeclaration","scope":10151,"src":"1099:123:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1099:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861646636343465653965323036386232633138366636623961326636383864333435306334313130623830313864613238316662626438616136633334393935","id":9984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1156:66:57","typeDescriptions":{"typeIdentifier":"t_rational_78685242934712130637568977763843365664885633260822954355905131591743192648085_by_1","typeString":"int_const 7868...(69 digits omitted)...8085"},"value":"0xadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c34995"},"visibility":"internal"},{"constant":false,"documentation":{"id":9986,"nodeType":"StructuredDocumentation","src":"1229:159:57","text":" @notice Address of this contract. This must be an immutable variable so that it remains\nconsistent when delegate called from a proxy."},"id":9992,"mutability":"immutable","name":"THIS_ADDRESS","nameLocation":"1420:12:57","nodeType":"VariableDeclaration","scope":10151,"src":"1393:55:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9987,"name":"address","nodeType":"ElementaryTypeName","src":"1393:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"id":9990,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1443:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}],"id":9989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1435:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9988,"name":"address","nodeType":"ElementaryTypeName","src":"1435:7:57","typeDescriptions":{}}},"id":9991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1435:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"anonymous":false,"documentation":{"id":9993,"nodeType":"StructuredDocumentation","src":"1455:236:57","text":" @notice An event that is emitted each time the implementation is changed. This event is part\n         of the EIP-1967 specification.\n @param implementation The address of the implementation contract"},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":9997,"name":"Upgraded","nameLocation":"1702:8:57","nodeType":"EventDefinition","parameters":{"id":9996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9995,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1727:14:57","nodeType":"VariableDeclaration","scope":9997,"src":"1711:30:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9994,"name":"address","nodeType":"ElementaryTypeName","src":"1711:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1710:32:57"},"src":"1696:47:57"},{"body":{"id":10018,"nodeType":"Block","src":"2131:172:57","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10001,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2162:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2162:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10003,"name":"_getChugSplashAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"2176:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2176:21:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2162:35:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10006,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2201:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2201:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":10010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2223: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":10009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2215:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10008,"name":"address","nodeType":"ElementaryTypeName","src":"2215:7:57","typeDescriptions":{}}},"id":10011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2215:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2201:24:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2162:63:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d696e","id":10014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2239:36:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_df13bd9d8a33902bf0e6a91ac16a6f6fe3944749e39401c7e12401be7ab8953e","typeString":"literal_string \"OZUUPSUpdater: caller is not admin\""},"value":"OZUUPSUpdater: caller is not admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df13bd9d8a33902bf0e6a91ac16a6f6fe3944749e39401c7e12401be7ab8953e","typeString":"literal_string \"OZUUPSUpdater: caller is not admin\""}],"id":10000,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2141:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2141:144:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10016,"nodeType":"ExpressionStatement","src":"2141:144:57"},{"id":10017,"nodeType":"PlaceholderStatement","src":"2295:1:57"}]},"documentation":{"id":9998,"nodeType":"StructuredDocumentation","src":"1749:348:57","text":" @notice A modifier that reverts if not called by the ChugSplash admin or by address(0) to\nallow\n         eth_call to interact with this proxy without needing to use low-level storage\n         inspection. We assume that nobody is able to trigger calls from address(0) during\n         normal EVM execution."},"id":10019,"name":"ifChugSplashAdmin","nameLocation":"2111:17:57","nodeType":"ModifierDefinition","parameters":{"id":9999,"nodeType":"ParameterList","parameters":[],"src":"2128:2:57"},"src":"2102:201:57","virtual":false,"visibility":"internal"},{"body":{"id":10033,"nodeType":"Block","src":"2545:158:57","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10025,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2584:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OZUUPSUpdater_$10151","typeString":"contract OZUUPSUpdater"}],"id":10024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2576:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10023,"name":"address","nodeType":"ElementaryTypeName","src":"2576:7:57","typeDescriptions":{}}},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2576:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10027,"name":"THIS_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9992,"src":"2593:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2576:29:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f5a55555053557064617465723a206d757374206e6f742062652063616c6c6564207468726f7567682064656c656761746563616c6c","id":10029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2619:56:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_c27596859fcb6ead2837c73c7dd7816b298d256d48959cdfafbf2d8dcd5da49f","typeString":"literal_string \"OZUUPSUpdater: must not be called through delegatecall\""},"value":"OZUUPSUpdater: must not be called through delegatecall"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c27596859fcb6ead2837c73c7dd7816b298d256d48959cdfafbf2d8dcd5da49f","typeString":"literal_string \"OZUUPSUpdater: must not be called through delegatecall\""}],"id":10022,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2555:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2555:130:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10031,"nodeType":"ExpressionStatement","src":"2555:130:57"},{"id":10032,"nodeType":"PlaceholderStatement","src":"2695:1:57"}]},"documentation":{"id":10020,"nodeType":"StructuredDocumentation","src":"2309:207:57","text":" @notice Check that the execution is not being performed through a delegate call. This allows\na function to be\n callable on the implementation contract but not through a proxy."},"id":10034,"name":"notDelegated","nameLocation":"2530:12:57","nodeType":"ModifierDefinition","parameters":{"id":10021,"nodeType":"ParameterList","parameters":[],"src":"2542:2:57"},"src":"2521:182:57","virtual":false,"visibility":"internal"},{"body":{"id":10046,"nodeType":"Block","src":"2968:52:57","statements":[{"expression":{"arguments":[{"id":10043,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10037,"src":"2997:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10042,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"2978:18:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2978:35:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10045,"nodeType":"ExpressionStatement","src":"2978:35:57"}]},"documentation":{"id":10035,"nodeType":"StructuredDocumentation","src":"2709:183:57","text":" @notice Set the implementation contract address. Only callable by the ChugSplash admin.\n @param _implementation Address of the implementation contract."},"functionSelector":"3659cfe6","id":10047,"implemented":true,"kind":"function","modifiers":[{"id":10040,"kind":"modifierInvocation","modifierName":{"id":10039,"name":"ifChugSplashAdmin","nodeType":"IdentifierPath","referencedDeclaration":10019,"src":"2950:17:57"},"nodeType":"ModifierInvocation","src":"2950:17:57"}],"name":"upgradeTo","nameLocation":"2906:9:57","nodeType":"FunctionDefinition","parameters":{"id":10038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10037,"mutability":"mutable","name":"_implementation","nameLocation":"2924:15:57","nodeType":"VariableDeclaration","scope":10047,"src":"2916:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10036,"name":"address","nodeType":"ElementaryTypeName","src":"2916:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2915:25:57"},"returnParameters":{"id":10041,"nodeType":"ParameterList","parameters":[],"src":"2968:0:57"},"scope":10151,"src":"2897:123:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10063,"nodeType":"Block","src":"3164:113:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10051,"name":"_getChugSplashAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"3178:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3178:21:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":10053,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3203:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3203:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3178:35:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10062,"nodeType":"IfStatement","src":"3174:97:57","trueBody":{"id":10061,"nodeType":"Block","src":"3215:56:57","statements":[{"expression":{"arguments":[{"expression":{"id":10057,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3249:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3249:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10056,"name":"_setChugSplashAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10137,"src":"3229:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3229:31:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10060,"nodeType":"ExpressionStatement","src":"3229:31:57"}]}}]},"documentation":{"id":10048,"nodeType":"StructuredDocumentation","src":"3026:104:57","text":" @notice Initiates an upgrade by setting the ChugSplash admin to the caller's address."},"functionSelector":"66aa56c5","id":10064,"implemented":true,"kind":"function","modifiers":[],"name":"initiate","nameLocation":"3144:8:57","nodeType":"FunctionDefinition","parameters":{"id":10049,"nodeType":"ParameterList","parameters":[],"src":"3152:2:57"},"returnParameters":{"id":10050,"nodeType":"ParameterList","parameters":[],"src":"3164:0:57"},"scope":10151,"src":"3135:142:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10083,"nodeType":"Block","src":"3631:93:57","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":10075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3669: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":10074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3661:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10073,"name":"address","nodeType":"ElementaryTypeName","src":"3661:7:57","typeDescriptions":{}}},"id":10076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3661:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10072,"name":"_setChugSplashAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10137,"src":"3641:19:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3641:31:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10078,"nodeType":"ExpressionStatement","src":"3641:31:57"},{"expression":{"arguments":[{"id":10080,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"3701:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10079,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"3682:18:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3682:35:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10082,"nodeType":"ExpressionStatement","src":"3682:35:57"}]},"documentation":{"id":10065,"nodeType":"StructuredDocumentation","src":"3283:273:57","text":" @notice Completes an upgrade by setting the ChugSplash admin to address(0) and setting the\nproxy's implementation to a new address. Only callable by the ChugSplash admin.\n @param _implementation Address of the implementation contract."},"functionSelector":"93af0292","id":10084,"implemented":true,"kind":"function","modifiers":[{"id":10070,"kind":"modifierInvocation","modifierName":{"id":10069,"name":"ifChugSplashAdmin","nodeType":"IdentifierPath","referencedDeclaration":10019,"src":"3613:17:57"},"nodeType":"ModifierInvocation","src":"3613:17:57"}],"name":"complete","nameLocation":"3570:8:57","nodeType":"FunctionDefinition","parameters":{"id":10068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10067,"mutability":"mutable","name":"_implementation","nameLocation":"3587:15:57","nodeType":"VariableDeclaration","scope":10084,"src":"3579:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10066,"name":"address","nodeType":"ElementaryTypeName","src":"3579:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3578:25:57"},"returnParameters":{"id":10071,"nodeType":"ParameterList","parameters":[],"src":"3631:0:57"},"scope":10151,"src":"3561:163:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10094,"nodeType":"Block","src":"4290:42:57","statements":[{"expression":{"id":10092,"name":"IMPLEMENTATION_KEY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9981,"src":"4307:18:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10091,"id":10093,"nodeType":"Return","src":"4300:25:57"}]},"documentation":{"id":10085,"nodeType":"StructuredDocumentation","src":"3730:485:57","text":" @notice Implementation of the ERC1822 `proxiableUUID` function. This returns the storage slot\nused by the implementation. It is used to validate the implementation's compatibility when\nperforming an upgrade. Since this function is only meant to be available on an implementation\ncontract, it must revert if invoked through a proxy. This is guaranteed by the `notDelegated`\nmodifier.\n@return The storage slot of the implementation."},"functionSelector":"52d1902d","id":10095,"implemented":true,"kind":"function","modifiers":[{"id":10088,"kind":"modifierInvocation","modifierName":{"id":10087,"name":"notDelegated","nodeType":"IdentifierPath","referencedDeclaration":10034,"src":"4259:12:57"},"nodeType":"ModifierInvocation","src":"4259:12:57"}],"name":"proxiableUUID","nameLocation":"4229:13:57","nodeType":"FunctionDefinition","parameters":{"id":10086,"nodeType":"ParameterList","parameters":[],"src":"4242:2:57"},"returnParameters":{"id":10091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10095,"src":"4281:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4281:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4280:9:57"},"scope":10151,"src":"4220:112:57","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[10260],"body":{"id":10116,"nodeType":"Block","src":"4566:56:57","statements":[{"expression":{"arguments":[{"id":10111,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10098,"src":"4593:4:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10112,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10100,"src":"4599:7:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":10113,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10102,"src":"4608:6:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10108,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4576:5:57","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OZUUPSUpdater_$10151_$","typeString":"type(contract super OZUUPSUpdater)"}},"id":10110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setStorage","nodeType":"MemberAccess","referencedDeclaration":10260,"src":"4576:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint8,bytes memory)"}},"id":10114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4576:39:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10115,"nodeType":"ExpressionStatement","src":"4576:39:57"}]},"documentation":{"id":10096,"nodeType":"StructuredDocumentation","src":"4338:89:57","text":" Only callable by the ChugSplash admin.\n @inheritdoc ProxyUpdater"},"functionSelector":"1ea94702","id":10117,"implemented":true,"kind":"function","modifiers":[{"id":10106,"kind":"modifierInvocation","modifierName":{"id":10105,"name":"ifChugSplashAdmin","nodeType":"IdentifierPath","referencedDeclaration":10019,"src":"4548:17:57"},"nodeType":"ModifierInvocation","src":"4548:17:57"}],"name":"setStorage","nameLocation":"4441:10:57","nodeType":"FunctionDefinition","overrides":{"id":10104,"nodeType":"OverrideSpecifier","overrides":[],"src":"4539:8:57"},"parameters":{"id":10103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10098,"mutability":"mutable","name":"_key","nameLocation":"4469:4:57","nodeType":"VariableDeclaration","scope":10117,"src":"4461:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4461:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10100,"mutability":"mutable","name":"_offset","nameLocation":"4489:7:57","nodeType":"VariableDeclaration","scope":10117,"src":"4483:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10099,"name":"uint8","nodeType":"ElementaryTypeName","src":"4483:5:57","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10102,"mutability":"mutable","name":"_value","nameLocation":"4519:6:57","nodeType":"VariableDeclaration","scope":10117,"src":"4506:19:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10101,"name":"bytes","nodeType":"ElementaryTypeName","src":"4506:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4451:80:57"},"returnParameters":{"id":10107,"nodeType":"ParameterList","parameters":[],"src":"4566:0:57"},"scope":10151,"src":"4432:190:57","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10128,"nodeType":"Block","src":"4819:132:57","statements":[{"AST":{"nodeType":"YulBlock","src":"4838:67:57","statements":[{"expression":{"arguments":[{"name":"IMPLEMENTATION_KEY","nodeType":"YulIdentifier","src":"4859:18:57"},{"name":"_implementation","nodeType":"YulIdentifier","src":"4879:15:57"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4852:6:57"},"nodeType":"YulFunctionCall","src":"4852:43:57"},"nodeType":"YulExpressionStatement","src":"4852:43:57"}]},"evmVersion":"london","externalReferences":[{"declaration":9981,"isOffset":false,"isSlot":false,"src":"4859:18:57","valueSize":1},{"declaration":10120,"isOffset":false,"isSlot":false,"src":"4879:15:57","valueSize":1}],"id":10123,"nodeType":"InlineAssembly","src":"4829:76:57"},{"eventCall":{"arguments":[{"id":10125,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10120,"src":"4928:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10124,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9997,"src":"4919:8:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4919:25:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10127,"nodeType":"EmitStatement","src":"4914:30:57"}]},"documentation":{"id":10118,"nodeType":"StructuredDocumentation","src":"4628:124:57","text":" @notice Sets the implementation address.\n @param _implementation New implementation address."},"id":10129,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"4766:18:57","nodeType":"FunctionDefinition","parameters":{"id":10121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10120,"mutability":"mutable","name":"_implementation","nameLocation":"4793:15:57","nodeType":"VariableDeclaration","scope":10129,"src":"4785:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10119,"name":"address","nodeType":"ElementaryTypeName","src":"4785:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4784:25:57"},"returnParameters":{"id":10122,"nodeType":"ParameterList","parameters":[],"src":"4819:0:57"},"scope":10151,"src":"4757:194:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10136,"nodeType":"Block","src":"5139:88:57","statements":[{"AST":{"nodeType":"YulBlock","src":"5158:63:57","statements":[{"expression":{"arguments":[{"name":"CHUGSPLASH_ADMIN_KEY","nodeType":"YulIdentifier","src":"5179:20:57"},{"name":"_newAdmin","nodeType":"YulIdentifier","src":"5201:9:57"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"5172:6:57"},"nodeType":"YulFunctionCall","src":"5172:39:57"},"nodeType":"YulExpressionStatement","src":"5172:39:57"}]},"evmVersion":"london","externalReferences":[{"declaration":9985,"isOffset":false,"isSlot":false,"src":"5179:20:57","valueSize":1},{"declaration":10132,"isOffset":false,"isSlot":false,"src":"5201:9:57","valueSize":1}],"id":10135,"nodeType":"InlineAssembly","src":"5149:72:57"}]},"documentation":{"id":10130,"nodeType":"StructuredDocumentation","src":"4957:120:57","text":" @notice Sets the ChugSplash admin to a new address.\n @param _newAdmin New admin address."},"id":10137,"implemented":true,"kind":"function","modifiers":[],"name":"_setChugSplashAdmin","nameLocation":"5091:19:57","nodeType":"FunctionDefinition","parameters":{"id":10133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10132,"mutability":"mutable","name":"_newAdmin","nameLocation":"5119:9:57","nodeType":"VariableDeclaration","scope":10137,"src":"5111:17:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10131,"name":"address","nodeType":"ElementaryTypeName","src":"5111:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5110:19:57"},"returnParameters":{"id":10134,"nodeType":"ParameterList","parameters":[],"src":"5139:0:57"},"scope":10151,"src":"5082:145:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10149,"nodeType":"Block","src":"5412:160:57","statements":[{"assignments":[10144],"declarations":[{"constant":false,"id":10144,"mutability":"mutable","name":"chugsplashAdmin","nameLocation":"5430:15:57","nodeType":"VariableDeclaration","scope":10149,"src":"5422:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10143,"name":"address","nodeType":"ElementaryTypeName","src":"5422:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10145,"nodeType":"VariableDeclarationStatement","src":"5422:23:57"},{"AST":{"nodeType":"YulBlock","src":"5464:70:57","statements":[{"nodeType":"YulAssignment","src":"5478:46:57","value":{"arguments":[{"name":"CHUGSPLASH_ADMIN_KEY","nodeType":"YulIdentifier","src":"5503:20:57"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"5497:5:57"},"nodeType":"YulFunctionCall","src":"5497:27:57"},"variableNames":[{"name":"chugsplashAdmin","nodeType":"YulIdentifier","src":"5478:15:57"}]}]},"evmVersion":"london","externalReferences":[{"declaration":9985,"isOffset":false,"isSlot":false,"src":"5503:20:57","valueSize":1},{"declaration":10144,"isOffset":false,"isSlot":false,"src":"5478:15:57","valueSize":1}],"id":10146,"nodeType":"InlineAssembly","src":"5455:79:57"},{"expression":{"id":10147,"name":"chugsplashAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10144,"src":"5550:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10142,"id":10148,"nodeType":"Return","src":"5543:22:57"}]},"documentation":{"id":10138,"nodeType":"StructuredDocumentation","src":"5233:111:57","text":" @notice Gets the ChugSplash admin's address.\n @return ChugSplash admin address."},"id":10150,"implemented":true,"kind":"function","modifiers":[],"name":"_getChugSplashAdmin","nameLocation":"5358:19:57","nodeType":"FunctionDefinition","parameters":{"id":10139,"nodeType":"ParameterList","parameters":[],"src":"5377:2:57"},"returnParameters":{"id":10142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10150,"src":"5403:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10140,"name":"address","nodeType":"ElementaryTypeName","src":"5403:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5402:9:57"},"scope":10151,"src":"5349:223:57","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":10152,"src":"584:4990:57","usedErrors":[]}],"src":"32:5543:57"},"id":57},"contracts/updaters/ProxyUpdater.sol":{"ast":{"absolutePath":"contracts/updaters/ProxyUpdater.sol","exportedSymbols":{"IProxyUpdater":[9901],"ProxyUpdater":[10261]},"id":10262,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10153,"literals":["solidity","^","0.8",".15"],"nodeType":"PragmaDirective","src":"32:24:58"},{"absolutePath":"contracts/interfaces/IProxyUpdater.sol","file":"../interfaces/IProxyUpdater.sol","id":10155,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10262,"sourceUnit":9902,"src":"58:64:58","symbolAliases":[{"foreign":{"id":10154,"name":"IProxyUpdater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9901,"src":"67:13:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10157,"name":"IProxyUpdater","nodeType":"IdentifierPath","referencedDeclaration":9901,"src":"316:13:58"},"id":10158,"nodeType":"InheritanceSpecifier","src":"316:13:58"}],"canonicalName":"ProxyUpdater","contractDependencies":[],"contractKind":"contract","documentation":{"id":10156,"nodeType":"StructuredDocumentation","src":"124:157:58","text":" @title ProxyUpdater\n @notice An abstract contract for setting storage slot values within a proxy at a given storage\nslot key and offset."},"fullyImplemented":true,"id":10261,"linearizedBaseContracts":[10261,9901],"name":"ProxyUpdater","nameLocation":"300:12:58","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[9900],"body":{"id":10259,"nodeType":"Block","src":"2368:2068:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10169,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10165,"src":"2386:6:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2386:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":10171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2403:2:58","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2386:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f7879557064617465723a2076616c756520697320746f6f206c61726765","id":10173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2407:34:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24","typeString":"literal_string \"ProxyUpdater: value is too large\""},"value":"ProxyUpdater: value is too large"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24","typeString":"literal_string \"ProxyUpdater: value is too large\""}],"id":10168,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2378:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2378:64:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10175,"nodeType":"ExpressionStatement","src":"2378:64:58"},{"assignments":[10177],"declarations":[{"constant":false,"id":10177,"mutability":"mutable","name":"valueBytes32","nameLocation":"2461:12:58","nodeType":"VariableDeclaration","scope":10259,"src":"2453:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2453:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10182,"initialValue":{"arguments":[{"id":10180,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10165,"src":"2484:6:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2476:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10178,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2476:7:58","typeDescriptions":{}}},"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2476:15:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2453:38:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10183,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10165,"src":"2639:6:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2639:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":10185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2656:2:58","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2639:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10257,"nodeType":"Block","src":"2757:1673:58","statements":[{"assignments":[10190],"declarations":[{"constant":false,"id":10190,"mutability":"mutable","name":"currVal","nameLocation":"2832:7:58","nodeType":"VariableDeclaration","scope":10257,"src":"2824:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2824:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10191,"nodeType":"VariableDeclarationStatement","src":"2824:15:58"},{"AST":{"nodeType":"YulBlock","src":"2862:54:58","statements":[{"nodeType":"YulAssignment","src":"2880:22:58","value":{"arguments":[{"name":"_key","nodeType":"YulIdentifier","src":"2897:4:58"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2891:5:58"},"nodeType":"YulFunctionCall","src":"2891:11:58"},"variableNames":[{"name":"currVal","nodeType":"YulIdentifier","src":"2880:7:58"}]}]},"evmVersion":"london","externalReferences":[{"declaration":10161,"isOffset":false,"isSlot":false,"src":"2897:4:58","valueSize":1},{"declaration":10190,"isOffset":false,"isSlot":false,"src":"2880:7:58","valueSize":1}],"id":10192,"nodeType":"InlineAssembly","src":"2853:63:58"},{"assignments":[10194],"declarations":[{"constant":false,"id":10194,"mutability":"mutable","name":"valueLengthBits","nameLocation":"3024:15:58","nodeType":"VariableDeclaration","scope":10257,"src":"3016:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10193,"name":"uint256","nodeType":"ElementaryTypeName","src":"3016:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10199,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10195,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10165,"src":"3042:6:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3042:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":10197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3058:1:58","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3042:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3016:43:58"},{"assignments":[10201],"declarations":[{"constant":false,"id":10201,"mutability":"mutable","name":"offsetBits","nameLocation":"3081:10:58","nodeType":"VariableDeclaration","scope":10257,"src":"3073:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10200,"name":"uint256","nodeType":"ElementaryTypeName","src":"3073:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10205,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":10204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10202,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10163,"src":"3094:7:58","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":10203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3104:1:58","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3094:11:58","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"3073:32:58"},{"assignments":[10207],"declarations":[{"constant":false,"id":10207,"mutability":"mutable","name":"mask","nameLocation":"3528:4:58","nodeType":"VariableDeclaration","scope":10257,"src":"3520:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10206,"name":"uint256","nodeType":"ElementaryTypeName","src":"3520:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10219,"initialValue":{"id":10218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3535:45:58","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3538:1:58","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"id":10209,"name":"valueLengthBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10194,"src":"3544:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10210,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3543:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3538:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3563:1:58","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3538:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10214,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3537:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":10215,"name":"offsetBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10201,"src":"3569:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3537:42:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10217,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3536:44:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3520:60:58"},{"assignments":[10221],"declarations":[{"constant":false,"id":10221,"mutability":"mutable","name":"maskedCurrVal","nameLocation":"3673:13:58","nodeType":"VariableDeclaration","scope":10257,"src":"3665:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3665:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10228,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10224,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10207,"src":"3697:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3689:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3689:7:58","typeDescriptions":{}}},"id":10225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3689:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":10226,"name":"currVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10190,"src":"3705:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3689:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3665:47:58"},{"assignments":[10230],"declarations":[{"constant":false,"id":10230,"mutability":"mutable","name":"leftOffsetBits","nameLocation":"3876:14:58","nodeType":"VariableDeclaration","scope":10257,"src":"3868:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10229,"name":"uint256","nodeType":"ElementaryTypeName","src":"3868:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10236,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":10231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3893:3:58","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10232,"name":"offsetBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10201,"src":"3899:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3893:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10234,"name":"valueLengthBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10194,"src":"3912:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3893:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3868:59:58"},{"assignments":[10238],"declarations":[{"constant":false,"id":10238,"mutability":"mutable","name":"rightShiftedValue","nameLocation":"4037:17:58","nodeType":"VariableDeclaration","scope":10257,"src":"4029:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4029:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10243,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10239,"name":"valueBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10177,"src":"4058:12:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":10240,"name":"leftOffsetBits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10230,"src":"4074:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4058:30:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4057:32:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4029:60:58"},{"assignments":[10245],"declarations":[{"constant":false,"id":10245,"mutability":"mutable","name":"newVal","nameLocation":"4230:6:58","nodeType":"VariableDeclaration","scope":10257,"src":"4222:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10244,"name":"uint256","nodeType":"ElementaryTypeName","src":"4222:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10255,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10248,"name":"maskedCurrVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10221,"src":"4247:13:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4239:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10246,"name":"uint256","nodeType":"ElementaryTypeName","src":"4239:7:58","typeDescriptions":{}}},"id":10249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4239:22:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":10252,"name":"rightShiftedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"4272:17:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4264:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10250,"name":"uint256","nodeType":"ElementaryTypeName","src":"4264:7:58","typeDescriptions":{}}},"id":10253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4264:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4239:51:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4222:68:58"},{"AST":{"nodeType":"YulBlock","src":"4368:52:58","statements":[{"expression":{"arguments":[{"name":"_key","nodeType":"YulIdentifier","src":"4393:4:58"},{"name":"newVal","nodeType":"YulIdentifier","src":"4399:6:58"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4386:6:58"},"nodeType":"YulFunctionCall","src":"4386:20:58"},"nodeType":"YulExpressionStatement","src":"4386:20:58"}]},"evmVersion":"london","externalReferences":[{"declaration":10161,"isOffset":false,"isSlot":false,"src":"4393:4:58","valueSize":1},{"declaration":10245,"isOffset":false,"isSlot":false,"src":"4399:6:58","valueSize":1}],"id":10256,"nodeType":"InlineAssembly","src":"4359:61:58"}]},"id":10258,"nodeType":"IfStatement","src":"2635:1795:58","trueBody":{"id":10188,"nodeType":"Block","src":"2660:91:58","statements":[{"AST":{"nodeType":"YulBlock","src":"2683:58:58","statements":[{"expression":{"arguments":[{"name":"_key","nodeType":"YulIdentifier","src":"2708:4:58"},{"name":"valueBytes32","nodeType":"YulIdentifier","src":"2714:12:58"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2701:6:58"},"nodeType":"YulFunctionCall","src":"2701:26:58"},"nodeType":"YulExpressionStatement","src":"2701:26:58"}]},"evmVersion":"london","externalReferences":[{"declaration":10161,"isOffset":false,"isSlot":false,"src":"2708:4:58","valueSize":1},{"declaration":10177,"isOffset":false,"isSlot":false,"src":"2714:12:58","valueSize":1}],"id":10187,"nodeType":"InlineAssembly","src":"2674:67:58"}]}}]},"documentation":{"id":10159,"nodeType":"StructuredDocumentation","src":"336:1942:58","text":" @notice Sets a proxy's storage slot value at a given storage slot key and offset. Note that\nthis will thrown an error if the length of the storage slot value plus the offset (both in\nbytes) is greater than 32.\n         To illustrate how this function works, consider the following example. Say we call\n         this function on some storage slot key with the input parameters:\n         `_offset = 2`\n         `_value = 0x22222222`\n         Say the storage slot value prior to calling this function is:\n         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\n         This function works by creating a bit mask at the location of the value, which in\n         this case is at an `offset` of 2 and is 4 bytes long (extending left from the\n         offset). The bit mask would be:\n         0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF\n         Applying this bit mask to the existing slot value, we get:\n         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC00000000CCCC\n         Then, we offset the new value to the correct location in the storage slot:\n         0x0000000000000000000000000000000000000000000000000000222222220000\n         Lastly, add these two values together to get the new storage slot value:\n         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC22222222CCCC\n @param _key     Storage slot key to modify.\n @param _offset  Bytes offset of the new storage slot value from the right side of the storage\nslot. An offset of 0 means the new value will start at the right-most byte of the storage\nslot.\n @param _value New value of the storage slot at the given key and offset. The length of the\nvalue is in the range [1, 32] bytes (inclusive)."},"functionSelector":"1ea94702","id":10260,"implemented":true,"kind":"function","modifiers":[],"name":"setStorage","nameLocation":"2292:10:58","nodeType":"FunctionDefinition","parameters":{"id":10166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10161,"mutability":"mutable","name":"_key","nameLocation":"2311:4:58","nodeType":"VariableDeclaration","scope":10260,"src":"2303:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10160,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2303:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10163,"mutability":"mutable","name":"_offset","nameLocation":"2323:7:58","nodeType":"VariableDeclaration","scope":10260,"src":"2317:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10162,"name":"uint8","nodeType":"ElementaryTypeName","src":"2317:5:58","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10165,"mutability":"mutable","name":"_value","nameLocation":"2345:6:58","nodeType":"VariableDeclaration","scope":10260,"src":"2332:19:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10164,"name":"bytes","nodeType":"ElementaryTypeName","src":"2332:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2302:50:58"},"returnParameters":{"id":10167,"nodeType":"ParameterList","parameters":[],"src":"2368:0:58"},"scope":10261,"src":"2283:2153:58","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":10262,"src":"282:4156:58","usedErrors":[]}],"src":"32:4407:58"},"id":58},"solmate/src/utils/Bytes32AddressLib.sol":{"ast":{"absolutePath":"solmate/src/utils/Bytes32AddressLib.sol","exportedSymbols":{"Bytes32AddressLib":[10300]},"id":10301,"license":"AGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":10263,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:59"},{"abstract":false,"baseContracts":[],"canonicalName":"Bytes32AddressLib","contractDependencies":[],"contractKind":"library","documentation":{"id":10264,"nodeType":"StructuredDocumentation","src":"68:180:59","text":"@notice Library for converting between addresses and bytes32 values.\n @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol)"},"fullyImplemented":true,"id":10300,"linearizedBaseContracts":[10300],"name":"Bytes32AddressLib","nameLocation":"256:17:59","nodeType":"ContractDefinition","nodes":[{"body":{"id":10282,"nodeType":"Block","src":"357:61:59","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":10277,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"398:10:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"390:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10275,"name":"uint256","nodeType":"ElementaryTypeName","src":"390:7:59","typeDescriptions":{}}},"id":10278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"390:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"382:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10273,"name":"uint160","nodeType":"ElementaryTypeName","src":"382:7:59","typeDescriptions":{}}},"id":10279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"382:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"374:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10271,"name":"address","nodeType":"ElementaryTypeName","src":"374:7:59","typeDescriptions":{}}},"id":10280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"374:37:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10270,"id":10281,"nodeType":"Return","src":"367:44:59"}]},"id":10283,"implemented":true,"kind":"function","modifiers":[],"name":"fromLast20Bytes","nameLocation":"289:15:59","nodeType":"FunctionDefinition","parameters":{"id":10267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10266,"mutability":"mutable","name":"bytesValue","nameLocation":"313:10:59","nodeType":"VariableDeclaration","scope":10283,"src":"305:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"304:20:59"},"returnParameters":{"id":10270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10283,"src":"348:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10268,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:9:59"},"scope":10300,"src":"280:138:59","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10298,"nodeType":"Block","src":"503:54:59","statements":[{"expression":{"arguments":[{"arguments":[{"id":10294,"name":"addressValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10285,"src":"536:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"528:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":10292,"name":"bytes20","nodeType":"ElementaryTypeName","src":"528:7:59","typeDescriptions":{}}},"id":10295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"528:21:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":10291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"520:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"520:7:59","typeDescriptions":{}}},"id":10296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"520:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10289,"id":10297,"nodeType":"Return","src":"513:37:59"}]},"id":10299,"implemented":true,"kind":"function","modifiers":[],"name":"fillLast12Bytes","nameLocation":"433:15:59","nodeType":"FunctionDefinition","parameters":{"id":10286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10285,"mutability":"mutable","name":"addressValue","nameLocation":"457:12:59","nodeType":"VariableDeclaration","scope":10299,"src":"449:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10284,"name":"address","nodeType":"ElementaryTypeName","src":"449:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"448:22:59"},"returnParameters":{"id":10289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10299,"src":"494:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"494:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"493:9:59"},"scope":10300,"src":"424:133:59","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10301,"src":"248:311:59","usedErrors":[]}],"src":"42:518:59"},"id":59},"solmate/src/utils/CREATE3.sol":{"ast":{"absolutePath":"solmate/src/utils/CREATE3.sol","exportedSymbols":{"Bytes32AddressLib":[10300],"CREATE3":[10412]},"id":10413,"license":"AGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":10302,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:60"},{"absolutePath":"solmate/src/utils/Bytes32AddressLib.sol","file":"./Bytes32AddressLib.sol","id":10304,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10413,"sourceUnit":10301,"src":"68:58:60","symbolAliases":[{"foreign":{"id":10303,"name":"Bytes32AddressLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10300,"src":"76:17:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"CREATE3","contractDependencies":[],"contractKind":"library","documentation":{"id":10305,"nodeType":"StructuredDocumentation","src":"128:282:60","text":"@notice Deploy to deterministic addresses without an initcode factor.\n @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)\n @author Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)"},"fullyImplemented":true,"id":10412,"linearizedBaseContracts":[10412],"name":"CREATE3","nameLocation":"418:7:60","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10308,"libraryName":{"id":10306,"name":"Bytes32AddressLib","nodeType":"IdentifierPath","referencedDeclaration":10300,"src":"438:17:60"},"nodeType":"UsingForDirective","src":"432:36:60","typeName":{"id":10307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"460:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"constant":true,"id":10311,"mutability":"constant","name":"PROXY_BYTECODE","nameLocation":"2367:14:60","nodeType":"VariableDeclaration","scope":10412,"src":"2343:93:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10309,"name":"bytes","nodeType":"ElementaryTypeName","src":"2343:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"hexValue":"67363d3d37363d34f03d5260086018f3","id":10310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2384:52:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f","typeString":"literal_string hex\"67363d3d37363d34f03d5260086018f3\""}},"visibility":"internal"},{"constant":true,"id":10316,"mutability":"constant","name":"PROXY_BYTECODE_HASH","nameLocation":"2469:19:60","nodeType":"VariableDeclaration","scope":10412,"src":"2443:73:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2443:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"id":10314,"name":"PROXY_BYTECODE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10311,"src":"2501:14:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10313,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2491:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2491:25:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":10371,"nodeType":"Block","src":"2661:658:60","statements":[{"assignments":[10328],"declarations":[{"constant":false,"id":10328,"mutability":"mutable","name":"proxyChildBytecode","nameLocation":"2684:18:60","nodeType":"VariableDeclaration","scope":10371,"src":"2671:31:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10327,"name":"bytes","nodeType":"ElementaryTypeName","src":"2671:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10330,"initialValue":{"id":10329,"name":"PROXY_BYTECODE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10311,"src":"2705:14:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2671:48:60"},{"assignments":[10332],"declarations":[{"constant":false,"id":10332,"mutability":"mutable","name":"proxy","nameLocation":"2738:5:60","nodeType":"VariableDeclaration","scope":10371,"src":"2730:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10331,"name":"address","nodeType":"ElementaryTypeName","src":"2730:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10333,"nodeType":"VariableDeclarationStatement","src":"2730:13:60"},{"AST":{"nodeType":"YulBlock","src":"2805:263:60","statements":[{"nodeType":"YulAssignment","src":"2977:81:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2994:1:60","type":"","value":"0"},{"arguments":[{"name":"proxyChildBytecode","nodeType":"YulIdentifier","src":"3001:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3021:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2997:3:60"},"nodeType":"YulFunctionCall","src":"2997:27:60"},{"arguments":[{"name":"proxyChildBytecode","nodeType":"YulIdentifier","src":"3032:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3026:5:60"},"nodeType":"YulFunctionCall","src":"3026:25:60"},{"name":"salt","nodeType":"YulIdentifier","src":"3053:4:60"}],"functionName":{"name":"create2","nodeType":"YulIdentifier","src":"2986:7:60"},"nodeType":"YulFunctionCall","src":"2986:72:60"},"variableNames":[{"name":"proxy","nodeType":"YulIdentifier","src":"2977:5:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":10332,"isOffset":false,"isSlot":false,"src":"2977:5:60","valueSize":1},{"declaration":10328,"isOffset":false,"isSlot":false,"src":"3001:18:60","valueSize":1},{"declaration":10328,"isOffset":false,"isSlot":false,"src":"3032:18:60","valueSize":1},{"declaration":10318,"isOffset":false,"isSlot":false,"src":"3053:4:60","valueSize":1}],"id":10334,"nodeType":"InlineAssembly","src":"2796:272:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10336,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10332,"src":"3085:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3102:1:60","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":10338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3094:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10337,"name":"address","nodeType":"ElementaryTypeName","src":"3094:7:60","typeDescriptions":{}}},"id":10340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3094:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3085:19:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4445504c4f594d454e545f4641494c4544","id":10342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3106:19:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1","typeString":"literal_string \"DEPLOYMENT_FAILED\""},"value":"DEPLOYMENT_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1","typeString":"literal_string \"DEPLOYMENT_FAILED\""}],"id":10335,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3077:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3077:49:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10344,"nodeType":"ExpressionStatement","src":"3077:49:60"},{"expression":{"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10345,"name":"deployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10325,"src":"3137:8:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10347,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10318,"src":"3160:4:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10346,"name":"getDeployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10411,"src":"3148:11:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":10348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3148:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3137:28:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10350,"nodeType":"ExpressionStatement","src":"3137:28:60"},{"assignments":[10352,null],"declarations":[{"constant":false,"id":10352,"mutability":"mutable","name":"success","nameLocation":"3181:7:60","nodeType":"VariableDeclaration","scope":10371,"src":"3176:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10351,"name":"bool","nodeType":"ElementaryTypeName","src":"3176:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":10359,"initialValue":{"arguments":[{"id":10357,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10320,"src":"3219:12:60","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":10353,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10332,"src":"3194:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"3194:10:60","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":10356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":10355,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10322,"src":"3212:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3194:24:60","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":10358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3194:38:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3175:57:60"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10361,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10352,"src":"3250:7:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10362,"name":"deployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10325,"src":"3261:8:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"3261:13:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3261:20:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3285:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3261:25:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3250:36:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e495449414c495a4154494f4e5f4641494c4544","id":10368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3288:23:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4","typeString":"literal_string \"INITIALIZATION_FAILED\""},"value":"INITIALIZATION_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4","typeString":"literal_string \"INITIALIZATION_FAILED\""}],"id":10360,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3242:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3242:70:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10370,"nodeType":"ExpressionStatement","src":"3242:70:60"}]},"id":10372,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"2532:6:60","nodeType":"FunctionDefinition","parameters":{"id":10323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10318,"mutability":"mutable","name":"salt","nameLocation":"2556:4:60","nodeType":"VariableDeclaration","scope":10372,"src":"2548:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2548:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10320,"mutability":"mutable","name":"creationCode","nameLocation":"2583:12:60","nodeType":"VariableDeclaration","scope":10372,"src":"2570:25:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10319,"name":"bytes","nodeType":"ElementaryTypeName","src":"2570:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10322,"mutability":"mutable","name":"value","nameLocation":"2613:5:60","nodeType":"VariableDeclaration","scope":10372,"src":"2605:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10321,"name":"uint256","nodeType":"ElementaryTypeName","src":"2605:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2538:86:60"},"returnParameters":{"id":10326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10325,"mutability":"mutable","name":"deployed","nameLocation":"2651:8:60","nodeType":"VariableDeclaration","scope":10372,"src":"2643:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10324,"name":"address","nodeType":"ElementaryTypeName","src":"2643:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2642:18:60"},"scope":10412,"src":"2523:796:60","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10410,"nodeType":"Block","src":"3392:784:60","statements":[{"assignments":[10380],"declarations":[{"constant":false,"id":10380,"mutability":"mutable","name":"proxy","nameLocation":"3410:5:60","nodeType":"VariableDeclaration","scope":10410,"src":"3402:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10379,"name":"address","nodeType":"ElementaryTypeName","src":"3402:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10398,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30784646","id":10386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3509:4:60","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":10385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3502:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":10384,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3502:6:60","typeDescriptions":{}}},"id":10387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3502:12:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":10390,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3568:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_CREATE3_$10412","typeString":"library CREATE3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CREATE3_$10412","typeString":"library CREATE3"}],"id":10389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3560:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10388,"name":"address","nodeType":"ElementaryTypeName","src":"3560:7:60","typeDescriptions":{}}},"id":10391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3560:13:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10392,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10374,"src":"3616:4:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10393,"name":"PROXY_BYTECODE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10316,"src":"3672:19:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10382,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3441:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3441:16:60","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3441:264:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10381,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3418:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3418:297:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fromLast20Bytes","nodeType":"MemberAccess","referencedDeclaration":10283,"src":"3418:313:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (address)"}},"id":10397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3418:315:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3402:331:60"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"hexValue":"d694","id":10402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"4018:10:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf","typeString":"literal_string hex\"d694\""},"value":"֔"},{"id":10403,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"4050:5:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"01","id":10404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"4077:7:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf","typeString":"literal_string hex\"d694\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""}],"expression":{"id":10400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3790:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3790:16:60","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3790:347:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10399,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3763:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3763:388:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fromLast20Bytes","nodeType":"MemberAccess","referencedDeclaration":10283,"src":"3763:404:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (address)"}},"id":10408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3763:406:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10378,"id":10409,"nodeType":"Return","src":"3744:425:60"}]},"id":10411,"implemented":true,"kind":"function","modifiers":[],"name":"getDeployed","nameLocation":"3334:11:60","nodeType":"FunctionDefinition","parameters":{"id":10375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10374,"mutability":"mutable","name":"salt","nameLocation":"3354:4:60","nodeType":"VariableDeclaration","scope":10411,"src":"3346:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3346:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3345:14:60"},"returnParameters":{"id":10378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10411,"src":"3383:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10376,"name":"address","nodeType":"ElementaryTypeName","src":"3383:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3382:9:60"},"scope":10412,"src":"3325:851:60","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":10413,"src":"410:3768:60","usedErrors":[]}],"src":"42:4137:60"},"id":60}},"contracts":{"@connext/interfaces/core/IConnext.sol":{"IConnext":{"abi":[{"inputs":[],"name":"LIQUIDITY_FEE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY_FEE_NUMERATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"acceptProposedRouterOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_local","type":"address"}],"name":"addRouterLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_local","type":"address"},{"internalType":"address","name":"_router","type":"address"}],"name":"addRouterLiquidityFor","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_adopted","type":"address"}],"name":"adoptedToCanonical","outputs":[{"components":[{"internalType":"uint32","name":"domain","type":"uint32"},{"internalType":"bytes32","name":"id","type":"bytes32"}],"internalType":"struct TokenId","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"domain","type":"uint32"},{"internalType":"bytes32","name":"id","type":"bytes32"}],"internalType":"struct TokenId","name":"_canonical","type":"tuple"}],"name":"approvedAssets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sequencer","type":"address"}],"name":"approvedSequencers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_transferId","type":"bytes32"}],"name":"bumpTransfer","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"domain","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"originDomain","type":"uint32"},{"internalType":"uint32","name":"destinationDomain","type":"uint32"},{"internalType":"uint32","name":"canonicalDomain","type":"uint32"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"delegate","type":"address"},{"internalType":"bool","name":"receiveLocal","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"slippage","type":"uint256"},{"internalType":"address","name":"originSender","type":"address"},{"internalType":"uint256","name":"bridgedAmt","type":"uint256"},{"internalType":"uint256","name":"normalizedIn","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes32","name":"canonicalId","type":"bytes32"}],"internalType":"struct TransferInfo","name":"params","type":"tuple"},{"internalType":"address[]","name":"routers","type":"address[]"},{"internalType":"bytes[]","name":"routerSignatures","type":"bytes[]"},{"internalType":"address","name":"sequencer","type":"address"},{"internalType":"bytes","name":"sequencerSignature","type":"bytes"}],"internalType":"struct ExecuteArgs","name":"_args","type":"tuple"}],"name":"execute","outputs":[{"internalType":"bytes32","name":"transferId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"originDomain","type":"uint32"},{"internalType":"uint32","name":"destinationDomain","type":"uint32"},{"internalType":"uint32","name":"canonicalDomain","type":"uint32"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"delegate","type":"address"},{"internalType":"bool","name":"receiveLocal","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"slippage","type":"uint256"},{"internalType":"address","name":"originSender","type":"address"},{"internalType":"uint256","name":"bridgedAmt","type":"uint256"},{"internalType":"uint256","name":"normalizedIn","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes32","name":"canonicalId","type":"bytes32"}],"internalType":"struct TransferInfo","name":"_params","type":"tuple"}],"name":"forceReceiveLocal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"originDomain","type":"uint32"},{"internalType":"uint32","name":"destinationDomain","type":"uint32"},{"internalType":"uint32","name":"canonicalDomain","type":"uint32"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"delegate","type":"address"},{"internalType":"bool","name":"receiveLocal","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"slippage","type":"uint256"},{"internalType":"address","name":"originSender","type":"address"},{"internalType":"uint256","name":"bridgedAmt","type":"uint256"},{"internalType":"uint256","name":"normalizedIn","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes32","name":"canonicalId","type":"bytes32"}],"internalType":"struct TransferInfo","name":"_params","type":"tuple"},{"internalType":"uint256","name":"_slippage","type":"uint256"}],"name":"forceUpdateSlippage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"getProposedRouterOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"getProposedRouterOwnerTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"getRouterApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"getRouterApprovalForPortal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"getRouterOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"getRouterRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"initializeRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxRoutersPerTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_proposed","type":"address"}],"name":"proposeRouterOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_domain","type":"uint32"}],"name":"remote","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"domain","type":"uint32"},{"internalType":"bytes32","name":"id","type":"bytes32"}],"internalType":"struct TokenId","name":"_canonical","type":"tuple"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address payable","name":"_to","type":"address"}],"name":"removeRouterLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"domain","type":"uint32"},{"internalType":"bytes32","name":"id","type":"bytes32"}],"internalType":"struct TokenId","name":"_canonical","type":"tuple"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"address","name":"_router","type":"address"}],"name":"removeRouterLiquidityFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_transferId","type":"bytes32"}],"name":"routedTransfers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_asset","type":"address"}],"name":"routerBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"setRouterRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_transferId","type":"bytes32"}],"name":"transferStatus","outputs":[{"internalType":"enum DestinationTransferStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xAppConnectionManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_destination","type":"uint32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_delegate","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_slippage","type":"uint256"},{"internalType":"bytes","name":"_callData","type":"bytes"}],"name":"xcall","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_destination","type":"uint32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_delegate","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_slippage","type":"uint256"},{"internalType":"bytes","name":"_callData","type":"bytes"},{"internalType":"uint256","name":"_relayerFee","type":"uint256"}],"name":"xcall","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_destination","type":"uint32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_delegate","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_slippage","type":"uint256"},{"internalType":"bytes","name":"_callData","type":"bytes"}],"name":"xcallIntoLocal","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"LIQUIDITY_FEE_DENOMINATOR()":"4b72c5da","LIQUIDITY_FEE_NUMERATOR()":"0951d6d8","acceptProposedRouterOwner(address)":"09935b8f","addRouterLiquidity(uint256,address)":"54064594","addRouterLiquidityFor(uint256,address,address)":"2d3f9ef6","adoptedToCanonical(address)":"60062091","approvedAssets((uint32,bytes32))":"ae8bc0de","approvedSequencers(address)":"159e041f","bumpTransfer(bytes32)":"2424401f","domain()":"c2fb26a6","execute(((uint32,uint32,uint32,address,address,bool,bytes,uint256,address,uint256,uint256,uint256,bytes32),address[],bytes[],address,bytes))":"63e3e7d2","forceReceiveLocal((uint32,uint32,uint32,address,address,bool,bytes,uint256,address,uint256,uint256,uint256,bytes32))":"cb8058ba","forceUpdateSlippage((uint32,uint32,uint32,address,address,bool,bytes,uint256,address,uint256,uint256,uint256,bytes32),uint256)":"54126711","getProposedRouterOwner(address)":"3b688da6","getProposedRouterOwnerTimestamp(address)":"12d57170","getRouterApproval(address)":"1407093b","getRouterApprovalForPortal(address)":"8770e682","getRouterOwner(address)":"e9160f3e","getRouterRecipient(address)":"c6bf691d","initializeRouter(address,address)":"b214c901","maxRoutersPerTransfer()":"9bf6d875","nonce()":"affed0e0","proposeRouterOwner(address,address)":"22a3c007","remote(uint32)":"121cca31","removeRouterLiquidity((uint32,bytes32),uint256,address)":"f72c5048","removeRouterLiquidityFor((uint32,bytes32),uint256,address,address)":"fd5bd5fe","routedTransfers(bytes32)":"1a8bc0e1","routerBalances(address,address)":"41258b5c","setRouterRecipient(address,address)":"ffaf3f1a","transferStatus(bytes32)":"bfd79030","xAppConnectionManager()":"3339df96","xcall(uint32,address,address,address,uint256,uint256,bytes)":"8aac16ba","xcall(uint32,address,address,address,uint256,uint256,bytes,uint256)":"93f18ac5","xcallIntoLocal(uint32,address,address,address,uint256,uint256,bytes)":"91f5de79"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LIQUIDITY_FEE_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIQUIDITY_FEE_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"acceptProposedRouterOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_local\",\"type\":\"address\"}],\"name\":\"addRouterLiquidity\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_local\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"addRouterLiquidityFor\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_adopted\",\"type\":\"address\"}],\"name\":\"adoptedToCanonical\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"domain\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct TokenId\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"domain\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct TokenId\",\"name\":\"_canonical\",\"type\":\"tuple\"}],\"name\":\"approvedAssets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencer\",\"type\":\"address\"}],\"name\":\"approvedSequencers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferId\",\"type\":\"bytes32\"}],\"name\":\"bumpTransfer\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"originDomain\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destinationDomain\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"canonicalDomain\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"receiveLocal\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"slippage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"originSender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bridgedAmt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"normalizedIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"canonicalId\",\"type\":\"bytes32\"}],\"internalType\":\"struct TransferInfo\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"routers\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"routerSignatures\",\"type\":\"bytes[]\"},{\"internalType\":\"address\",\"name\":\"sequencer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"sequencerSignature\",\"type\":\"bytes\"}],\"internalType\":\"struct ExecuteArgs\",\"name\":\"_args\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"transferId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"originDomain\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destinationDomain\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"canonicalDomain\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"receiveLocal\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"slippage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"originSender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bridgedAmt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"normalizedIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"canonicalId\",\"type\":\"bytes32\"}],\"internalType\":\"struct TransferInfo\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"forceReceiveLocal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"originDomain\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"destinationDomain\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"canonicalDomain\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"receiveLocal\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"slippage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"originSender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bridgedAmt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"normalizedIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"canonicalId\",\"type\":\"bytes32\"}],\"internalType\":\"struct TransferInfo\",\"name\":\"_params\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_slippage\",\"type\":\"uint256\"}],\"name\":\"forceUpdateSlippage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"getProposedRouterOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"getProposedRouterOwnerTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"getRouterApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"getRouterApprovalForPortal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"getRouterOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"getRouterRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"initializeRouter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxRoutersPerTransfer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_proposed\",\"type\":\"address\"}],\"name\":\"proposeRouterOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_domain\",\"type\":\"uint32\"}],\"name\":\"remote\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"domain\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct TokenId\",\"name\":\"_canonical\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"removeRouterLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"domain\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"internalType\":\"struct TokenId\",\"name\":\"_canonical\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"removeRouterLiquidityFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferId\",\"type\":\"bytes32\"}],\"name\":\"routedTransfers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"}],\"name\":\"routerBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"setRouterRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_transferId\",\"type\":\"bytes32\"}],\"name\":\"transferStatus\",\"outputs\":[{\"internalType\":\"enum DestinationTransferStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xAppConnectionManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_destination\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_slippage\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"}],\"name\":\"xcall\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_destination\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_slippage\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_relayerFee\",\"type\":\"uint256\"}],\"name\":\"xcall\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_destination\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_slippage\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"}],\"name\":\"xcallIntoLocal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@connext/interfaces/core/IConnext.sol\":\"IConnext\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@connext/interfaces/core/IConnext.sol\":{\"keccak256\":\"0x1c2f287fe81216f7060acce25747374631b94ff9a87573e1c5d36df1a3a2fdf8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2ceb15c29182ffec108b47c655f322406251c154ef13dd4e2c1624f131a63807\",\"dweb:/ipfs/QmbWGwyTUL8KrLqKPFWhoN9fDJ3ygYdWqFMf6qEi6b2Ywn\"]},\"@connext/interfaces/libraries/LibConnextStorage.sol\":{\"keccak256\":\"0xb8581253c5ebe58445c37d344fafe6126d3f7a15784337b3571637cd0068de57\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7c0de0736b0f823ec8ee871de4e83550407365f3115f3603f7dc888f23f026c\",\"dweb:/ipfs/QmTixst8JKz17UDNcmpSBtrHV66S7VrM9oTammQBkz2nF5\"]},\"@connext/interfaces/libraries/TokenId.sol\":{\"keccak256\":\"0xfa4e01760604863ea105e18380c243cd2250a7553d2b852f67ecb747f9916b6d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8bf151c51f3cc5927a863d8d9c512bc5edd3eecc86da7d70b3dcb636d303a9c1\",\"dweb:/ipfs/QmdH38rX4zg6Nsm9HRP6x5h8BRE3QC5hALNRxJsP14dPGx\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol":{"Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","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":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_398":{"entryPoint":null,"id":398,"parameterSlots":1,"returnSlots":0},"@_changeAdmin_525":{"entryPoint":62,"id":525,"parameterSlots":1,"returnSlots":0},"@_getAdmin_572":{"entryPoint":null,"id":572,"parameterSlots":0,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":178,"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}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:615:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"},{"body":{"nodeType":"YulBlock","src":"438:175:61","statements":[{"nodeType":"YulAssignment","src":"448:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"460:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"471:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"456:3:61"},"nodeType":"YulFunctionCall","src":"456:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"448:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"483:29:61","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"501:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"506:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"497:3:61"},"nodeType":"YulFunctionCall","src":"497:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"510:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"493:3:61"},"nodeType":"YulFunctionCall","src":"493:19:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"487:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"528:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"543:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"551:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"539:3:61"},"nodeType":"YulFunctionCall","src":"539:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"521:6:61"},"nodeType":"YulFunctionCall","src":"521:34:61"},"nodeType":"YulExpressionStatement","src":"521:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"575:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"571:3:61"},"nodeType":"YulFunctionCall","src":"571:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"595:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"603:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"591:3:61"},"nodeType":"YulFunctionCall","src":"591:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:61"},"nodeType":"YulFunctionCall","src":"564:43:61"},"nodeType":"YulExpressionStatement","src":"564:43:61"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"399:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"410:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"418:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"429:4:61","type":""}],"src":"309:304:61"}]},"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_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}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161091838038061091883398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108f88339815191525490565b6000805160206108f8833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b610807806100f16000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100be5780638f283970146100f8578063f851a440146101185761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61012d565b005b61006b61012d565b34801561008157600080fd5b5061006b6100903660046106d9565b610224565b6100a86100a33660046106f4565b610296565b6040516100b59190610777565b60405180910390f35b3480156100ca57600080fd5b506100d3610419565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b34801561010457600080fd5b5061006b6101133660046106d9565b6104b0565b34801561012457600080fd5b506100d3610517565b60006101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061021e573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061027d575033155b1561028e5761028b816105a3565b50565b61028b61012d565b60606102c07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102f7575033155b1561040a57610305846105a3565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161032f9291906107ea565b600060405180830381855af49150503d806000811461036a576040519150601f19603f3d011682016040523d82523d6000602084013e61036f565b606091505b509150915081610401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101f8565b91506104129050565b61041261012d565b9392505050565b60006104437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061047a575033155b156104a557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6104ad61012d565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610509575033155b1561028e5761028b8161060b565b60006105417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610578575033155b156104a557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106357fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d457600080fd5b919050565b6000602082840312156106eb57600080fd5b610412826106b0565b60008060006040848603121561070957600080fd5b610712846106b0565b9250602084013567ffffffffffffffff8082111561072f57600080fd5b818601915086601f83011261074357600080fd5b81358181111561075257600080fd5b87602082850101111561076457600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b818110156107a457858101830151858201604001528201610788565b818111156107b6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080f000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x918 CODESIZE SUB DUP1 PUSH2 0x918 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xB2 JUMP JUMPDEST PUSH2 0x38 DUP2 PUSH2 0x3E JUMP JUMPDEST POP PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x8F8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x8F8 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x807 DUP1 PUSH2 0xF1 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 0xBE JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x118 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 0x12D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B PUSH2 0x12D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x224 JUMP JUMPDEST PUSH2 0xA8 PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x6F4 JUMP JUMPDEST PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x4B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x517 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x201 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A20696D706C656D656E746174696F6E206E6F7420696E69746961 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C697A6564000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH2 0x21E JUMPI RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x27D JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x28E JUMPI PUSH2 0x28B DUP2 PUSH2 0x5A3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x28B PUSH2 0x12D JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2C0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2F7 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x40A JUMPI PUSH2 0x305 DUP5 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x32F SWAP3 SWAP2 SWAP1 PUSH2 0x7EA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x36A 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 0x36F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A2064656C656761746563616C6C20746F206E657720696D706C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D656E746174696F6E20636F6E7472616374206661696C656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x412 SWAP1 POP JUMP JUMPDEST PUSH2 0x412 PUSH2 0x12D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x443 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x47A JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4A5 JUMPI POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4AD PUSH2 0x12D JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x509 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x28E JUMPI PUSH2 0x28B DUP2 PUSH2 0x60B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x541 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x578 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4A5 JUMPI POP PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x635 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x6D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x412 DUP3 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x709 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x712 DUP5 PUSH2 0x6B0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x72F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x764 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 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7A4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x788 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB ","sourceMap":"294:6882:3:-:0;;;2511:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2549:20;2562:6;2549:12;:20::i;:::-;2511:65;294:6882;;5227:206;5284:16;5303:11;-1:-1:-1;;;;;;;;;;;7120:16:3;;7002:172;5303:11;-1:-1:-1;;;;;;;;;;;5347:25:3;;;5396:30;;;-1:-1:-1;;;;;539:15:61;;;521:34;;591:15;;586:2;571:18;;564:43;5284:30:3;;-1:-1:-1;5396:30:3;;456:18:61;5396:30:3;;;;;;;5274:159;5227:206;:::o;14:290:61:-;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;309:304::-;294:6882:3;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_405":{"entryPoint":null,"id":405,"parameterSlots":0,"returnSlots":0},"@_412":{"entryPoint":null,"id":412,"parameterSlots":0,"returnSlots":0},"@_changeAdmin_525":{"entryPoint":1547,"id":525,"parameterSlots":1,"returnSlots":0},"@_doProxyCall_546":{"entryPoint":301,"id":546,"parameterSlots":0,"returnSlots":0},"@_getAdmin_572":{"entryPoint":null,"id":572,"parameterSlots":0,"returnSlots":1},"@_getImplementation_559":{"entryPoint":null,"id":559,"parameterSlots":0,"returnSlots":1},"@_setImplementation_507":{"entryPoint":1443,"id":507,"parameterSlots":1,"returnSlots":0},"@admin_483":{"entryPoint":1303,"id":483,"parameterSlots":0,"returnSlots":1},"@changeAdmin_471":{"entryPoint":1200,"id":471,"parameterSlots":1,"returnSlots":0},"@implementation_495":{"entryPoint":1049,"id":495,"parameterSlots":0,"returnSlots":1},"@upgradeToAndCall_458":{"entryPoint":662,"id":458,"parameterSlots":3,"returnSlots":1},"@upgradeTo_425":{"entryPoint":548,"id":425,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":1712,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1753,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1780,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2026,"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_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1911,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3403:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:147:61","statements":[{"nodeType":"YulAssignment","src":"73:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:61"},"nodeType":"YulFunctionCall","src":"82:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:61"}]},{"body":{"nodeType":"YulBlock","src":"188:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"197:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"200:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"190:6:61"},"nodeType":"YulFunctionCall","src":"190:12:61"},"nodeType":"YulExpressionStatement","src":"190:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"142:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:61"},"nodeType":"YulFunctionCall","src":"131:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:61"},"nodeType":"YulFunctionCall","src":"121:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:61"},"nodeType":"YulFunctionCall","src":"114:73:61"},"nodeType":"YulIf","src":"111:93:61"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:61","type":""}],"src":"14:196:61"},{"body":{"nodeType":"YulBlock","src":"285:116:61","statements":[{"body":{"nodeType":"YulBlock","src":"331:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"340:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"343:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"333:6:61"},"nodeType":"YulFunctionCall","src":"333:12:61"},"nodeType":"YulExpressionStatement","src":"333:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"306:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"315:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"302:3:61"},"nodeType":"YulFunctionCall","src":"302:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"327:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"298:3:61"},"nodeType":"YulFunctionCall","src":"298:32:61"},"nodeType":"YulIf","src":"295:52:61"},{"nodeType":"YulAssignment","src":"356:39:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"385:9:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"366:18:61"},"nodeType":"YulFunctionCall","src":"366:29:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"356:6:61"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"251:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"262:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"274:6:61","type":""}],"src":"215:186:61"},{"body":{"nodeType":"YulBlock","src":"512:559:61","statements":[{"body":{"nodeType":"YulBlock","src":"558:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"567:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"570:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"560:6:61"},"nodeType":"YulFunctionCall","src":"560:12:61"},"nodeType":"YulExpressionStatement","src":"560:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"533:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"542:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"529:3:61"},"nodeType":"YulFunctionCall","src":"529:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"554:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"525:3:61"},"nodeType":"YulFunctionCall","src":"525:32:61"},"nodeType":"YulIf","src":"522:52:61"},{"nodeType":"YulAssignment","src":"583:39:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"612:9:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"593:18:61"},"nodeType":"YulFunctionCall","src":"593:29:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"583:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"631:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"662:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"673:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"658:3:61"},"nodeType":"YulFunctionCall","src":"658:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"645:12:61"},"nodeType":"YulFunctionCall","src":"645:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"635:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"686:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"696:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"690:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"741:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"750:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"753:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"743:6:61"},"nodeType":"YulFunctionCall","src":"743:12:61"},"nodeType":"YulExpressionStatement","src":"743:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"729:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"737:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"726:2:61"},"nodeType":"YulFunctionCall","src":"726:14:61"},"nodeType":"YulIf","src":"723:34:61"},{"nodeType":"YulVariableDeclaration","src":"766:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"780:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"791:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"776:3:61"},"nodeType":"YulFunctionCall","src":"776:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"770:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"846:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"855:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"858:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"848:6:61"},"nodeType":"YulFunctionCall","src":"848:12:61"},"nodeType":"YulExpressionStatement","src":"848:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"825:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"829:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"821:3:61"},"nodeType":"YulFunctionCall","src":"821:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"836:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"817:3:61"},"nodeType":"YulFunctionCall","src":"817:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"810:6:61"},"nodeType":"YulFunctionCall","src":"810:35:61"},"nodeType":"YulIf","src":"807:55:61"},{"nodeType":"YulVariableDeclaration","src":"871:30:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"898:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"885:12:61"},"nodeType":"YulFunctionCall","src":"885:16:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"875:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"928:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"937:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"940:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"930:6:61"},"nodeType":"YulFunctionCall","src":"930:12:61"},"nodeType":"YulExpressionStatement","src":"930:12:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"916:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"924:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:61"},"nodeType":"YulFunctionCall","src":"913:14:61"},"nodeType":"YulIf","src":"910:34:61"},{"body":{"nodeType":"YulBlock","src":"994:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1003:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1006:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"996:6:61"},"nodeType":"YulFunctionCall","src":"996:12:61"},"nodeType":"YulExpressionStatement","src":"996:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"967:2:61"},{"name":"length","nodeType":"YulIdentifier","src":"971:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:61"},"nodeType":"YulFunctionCall","src":"963:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"980:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"959:3:61"},"nodeType":"YulFunctionCall","src":"959:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"985:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"956:2:61"},"nodeType":"YulFunctionCall","src":"956:37:61"},"nodeType":"YulIf","src":"953:57:61"},{"nodeType":"YulAssignment","src":"1019:21:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1033:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1037:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1029:3:61"},"nodeType":"YulFunctionCall","src":"1029:11:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1019:6:61"}]},{"nodeType":"YulAssignment","src":"1049:16:61","value":{"name":"length","nodeType":"YulIdentifier","src":"1059:6:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1049:6:61"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"462:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"473:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"485:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"493:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"501:6:61","type":""}],"src":"406:665:61"},{"body":{"nodeType":"YulBlock","src":"1195:535:61","statements":[{"nodeType":"YulVariableDeclaration","src":"1205:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1215:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1209:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1233:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1244:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1226:6:61"},"nodeType":"YulFunctionCall","src":"1226:21:61"},"nodeType":"YulExpressionStatement","src":"1226:21:61"},{"nodeType":"YulVariableDeclaration","src":"1256:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1276:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1270:5:61"},"nodeType":"YulFunctionCall","src":"1270:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1260:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1303:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1314:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1299:3:61"},"nodeType":"YulFunctionCall","src":"1299:18:61"},{"name":"length","nodeType":"YulIdentifier","src":"1319:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1292:6:61"},"nodeType":"YulFunctionCall","src":"1292:34:61"},"nodeType":"YulExpressionStatement","src":"1292:34:61"},{"nodeType":"YulVariableDeclaration","src":"1335:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1344:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1339:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1404:90:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1433:9:61"},{"name":"i","nodeType":"YulIdentifier","src":"1444:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1429:3:61"},"nodeType":"YulFunctionCall","src":"1429:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"1448:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1425:3:61"},"nodeType":"YulFunctionCall","src":"1425:26:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1467:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"1475:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1463:3:61"},"nodeType":"YulFunctionCall","src":"1463:14:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1479:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1459:3:61"},"nodeType":"YulFunctionCall","src":"1459:23:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1453:5:61"},"nodeType":"YulFunctionCall","src":"1453:30:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1418:6:61"},"nodeType":"YulFunctionCall","src":"1418:66:61"},"nodeType":"YulExpressionStatement","src":"1418:66:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1365:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"1368:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1362:2:61"},"nodeType":"YulFunctionCall","src":"1362:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1376:19:61","statements":[{"nodeType":"YulAssignment","src":"1378:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1387:1:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1390:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:61"},"nodeType":"YulFunctionCall","src":"1383:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1378:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"1358:3:61","statements":[]},"src":"1354:140:61"},{"body":{"nodeType":"YulBlock","src":"1528:66:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1557:9:61"},{"name":"length","nodeType":"YulIdentifier","src":"1568:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1553:3:61"},"nodeType":"YulFunctionCall","src":"1553:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"1577:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1549:3:61"},"nodeType":"YulFunctionCall","src":"1549:31:61"},{"kind":"number","nodeType":"YulLiteral","src":"1582:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1542:6:61"},"nodeType":"YulFunctionCall","src":"1542:42:61"},"nodeType":"YulExpressionStatement","src":"1542:42:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1509:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"1512:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1506:2:61"},"nodeType":"YulFunctionCall","src":"1506:13:61"},"nodeType":"YulIf","src":"1503:91:61"},{"nodeType":"YulAssignment","src":"1603:121:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1619:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1638:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1646:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1634:3:61"},"nodeType":"YulFunctionCall","src":"1634:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1651:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1630:3:61"},"nodeType":"YulFunctionCall","src":"1630:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1615:3:61"},"nodeType":"YulFunctionCall","src":"1615:104:61"},{"kind":"number","nodeType":"YulLiteral","src":"1721:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1611:3:61"},"nodeType":"YulFunctionCall","src":"1611:113:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1603:4:61"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1164:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1175:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1186:4:61","type":""}],"src":"1076:654:61"},{"body":{"nodeType":"YulBlock","src":"1836:125:61","statements":[{"nodeType":"YulAssignment","src":"1846:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1858:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1869:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1854:3:61"},"nodeType":"YulFunctionCall","src":"1854:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1846:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1888:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1903:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1911:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1899:3:61"},"nodeType":"YulFunctionCall","src":"1899:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1881:6:61"},"nodeType":"YulFunctionCall","src":"1881:74:61"},"nodeType":"YulExpressionStatement","src":"1881:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1805:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1816:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1827:4:61","type":""}],"src":"1735:226:61"},{"body":{"nodeType":"YulBlock","src":"2140:227:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2157:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2168:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2150:6:61"},"nodeType":"YulFunctionCall","src":"2150:21:61"},"nodeType":"YulExpressionStatement","src":"2150:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2191:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2202:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2187:3:61"},"nodeType":"YulFunctionCall","src":"2187:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2207:2:61","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2180:6:61"},"nodeType":"YulFunctionCall","src":"2180:30:61"},"nodeType":"YulExpressionStatement","src":"2180:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2230:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2241:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2226:3:61"},"nodeType":"YulFunctionCall","src":"2226:18:61"},{"hexValue":"50726f78793a20696d706c656d656e746174696f6e206e6f7420696e69746961","kind":"string","nodeType":"YulLiteral","src":"2246:34:61","type":"","value":"Proxy: implementation not initia"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2219:6:61"},"nodeType":"YulFunctionCall","src":"2219:62:61"},"nodeType":"YulExpressionStatement","src":"2219:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2301:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2312:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2297:3:61"},"nodeType":"YulFunctionCall","src":"2297:18:61"},{"hexValue":"6c697a6564","kind":"string","nodeType":"YulLiteral","src":"2317:7:61","type":"","value":"lized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2290:6:61"},"nodeType":"YulFunctionCall","src":"2290:35:61"},"nodeType":"YulExpressionStatement","src":"2290:35:61"},{"nodeType":"YulAssignment","src":"2334:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2346:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2357:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2342:3:61"},"nodeType":"YulFunctionCall","src":"2342:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2334:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2117:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2131:4:61","type":""}],"src":"1966:401:61"},{"body":{"nodeType":"YulBlock","src":"2519:124:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2542:3:61"},{"name":"value0","nodeType":"YulIdentifier","src":"2547:6:61"},{"name":"value1","nodeType":"YulIdentifier","src":"2555:6:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2529:12:61"},"nodeType":"YulFunctionCall","src":"2529:33:61"},"nodeType":"YulExpressionStatement","src":"2529:33:61"},{"nodeType":"YulVariableDeclaration","src":"2571:26:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2585:3:61"},{"name":"value1","nodeType":"YulIdentifier","src":"2590:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2581:3:61"},"nodeType":"YulFunctionCall","src":"2581:16:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2575:2:61","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2613:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2617:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2606:6:61"},"nodeType":"YulFunctionCall","src":"2606:13:61"},"nodeType":"YulExpressionStatement","src":"2606:13:61"},{"nodeType":"YulAssignment","src":"2628:9:61","value":{"name":"_1","nodeType":"YulIdentifier","src":"2635:2:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2628:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2487:3:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2492:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2500:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2511:3:61","type":""}],"src":"2372:271:61"},{"body":{"nodeType":"YulBlock","src":"2822:247:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2839:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2850:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2832:6:61"},"nodeType":"YulFunctionCall","src":"2832:21:61"},"nodeType":"YulExpressionStatement","src":"2832:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2873:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2884:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2869:3:61"},"nodeType":"YulFunctionCall","src":"2869:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2889:2:61","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2862:6:61"},"nodeType":"YulFunctionCall","src":"2862:30:61"},"nodeType":"YulExpressionStatement","src":"2862:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2912:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2923:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2908:3:61"},"nodeType":"YulFunctionCall","src":"2908:18:61"},{"hexValue":"50726f78793a2064656c656761746563616c6c20746f206e657720696d706c65","kind":"string","nodeType":"YulLiteral","src":"2928:34:61","type":"","value":"Proxy: delegatecall to new imple"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2901:6:61"},"nodeType":"YulFunctionCall","src":"2901:62:61"},"nodeType":"YulExpressionStatement","src":"2901:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2983:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2994:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2979:3:61"},"nodeType":"YulFunctionCall","src":"2979:18:61"},{"hexValue":"6d656e746174696f6e20636f6e7472616374206661696c6564","kind":"string","nodeType":"YulLiteral","src":"2999:27:61","type":"","value":"mentation contract failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2972:6:61"},"nodeType":"YulFunctionCall","src":"2972:55:61"},"nodeType":"YulExpressionStatement","src":"2972:55:61"},{"nodeType":"YulAssignment","src":"3036:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3048:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3059:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3044:3:61"},"nodeType":"YulFunctionCall","src":"3044:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3036:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2799:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2813:4:61","type":""}],"src":"2648:421:61"},{"body":{"nodeType":"YulBlock","src":"3203:198:61","statements":[{"nodeType":"YulAssignment","src":"3213:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3225:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3221:3:61"},"nodeType":"YulFunctionCall","src":"3221:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3213:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"3248:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3258:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3252:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3316:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3331:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3339:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3327:3:61"},"nodeType":"YulFunctionCall","src":"3327:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3309:6:61"},"nodeType":"YulFunctionCall","src":"3309:34:61"},"nodeType":"YulExpressionStatement","src":"3309:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3363:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3374:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3359:3:61"},"nodeType":"YulFunctionCall","src":"3359:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3383:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3391:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3379:3:61"},"nodeType":"YulFunctionCall","src":"3379:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3352:6:61"},"nodeType":"YulFunctionCall","src":"3352:43:61"},"nodeType":"YulExpressionStatement","src":"3352:43:61"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3164:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3175:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3183:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3194:4:61","type":""}],"src":"3074:327:61"}]},"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_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), 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        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), 0)\n        }\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_stringliteral_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59__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), \"Proxy: implementation not initia\")\n        mstore(add(headStart, 96), \"lized\")\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_t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"Proxy: delegatecall to new imple\")\n        mstore(add(headStart, 96), \"mentation contract failed\")\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}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100be5780638f283970146100f8578063f851a440146101185761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61012d565b005b61006b61012d565b34801561008157600080fd5b5061006b6100903660046106d9565b610224565b6100a86100a33660046106f4565b610296565b6040516100b59190610777565b60405180910390f35b3480156100ca57600080fd5b506100d3610419565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b34801561010457600080fd5b5061006b6101133660046106d9565b6104b0565b34801561012457600080fd5b506100d3610517565b60006101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061021e573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061027d575033155b1561028e5761028b816105a3565b50565b61028b61012d565b60606102c07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102f7575033155b1561040a57610305846105a3565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161032f9291906107ea565b600060405180830381855af49150503d806000811461036a576040519150601f19603f3d011682016040523d82523d6000602084013e61036f565b606091505b509150915081610401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101f8565b91506104129050565b61041261012d565b9392505050565b60006104437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061047a575033155b156104a557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6104ad61012d565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610509575033155b1561028e5761028b8161060b565b60006105417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610578575033155b156104a557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106357fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d457600080fd5b919050565b6000602082840312156106eb57600080fd5b610412826106b0565b60008060006040848603121561070957600080fd5b610712846106b0565b9250602084013567ffffffffffffffff8082111561072f57600080fd5b818601915086601f83011261074357600080fd5b81358181111561075257600080fd5b87602082850101111561076457600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b818110156107a457858101830151858201604001528201610788565b818111156107b6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080f000a","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 0xBE JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x118 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 0x12D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B PUSH2 0x12D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x224 JUMP JUMPDEST PUSH2 0xA8 PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x6F4 JUMP JUMPDEST PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x4B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD3 PUSH2 0x517 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x157 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x201 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A20696D706C656D656E746174696F6E206E6F7420696E69746961 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C697A6564000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH2 0x21E JUMPI RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x27D JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x28E JUMPI PUSH2 0x28B DUP2 PUSH2 0x5A3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x28B PUSH2 0x12D JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2C0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2F7 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x40A JUMPI PUSH2 0x305 DUP5 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x32F SWAP3 SWAP2 SWAP1 PUSH2 0x7EA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x36A 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 0x36F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A2064656C656761746563616C6C20746F206E657720696D706C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D656E746174696F6E20636F6E7472616374206661696C656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x412 SWAP1 POP JUMP JUMPDEST PUSH2 0x412 PUSH2 0x12D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x443 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x47A JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4A5 JUMPI POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4AD PUSH2 0x12D JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x509 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x28E JUMPI PUSH2 0x28B DUP2 PUSH2 0x60B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x541 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x578 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4A5 JUMPI POP PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x635 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x6D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x412 DUP3 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x709 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x712 DUP5 PUSH2 0x6B0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x72F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x764 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 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7A4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x788 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"294:6882:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2699:14;:12;:14::i;:::-;294:6882;;2844:14;:12;:14::i;3108:131::-;;;;;;;;;;-1:-1:-1;3108:131:3;;;;;:::i;:::-;;:::i;3588:436::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4636:123;;;;;;;;;;;;;:::i;:::-;;;1911:42:61;1899:55;;;1881:74;;1869:2;1854:18;4636:123:3;1735:226:61;4191:109:3;;;;;;;;;;-1:-1:-1;4191:109:3;;;;;:::i;:::-;;:::i;4412:105::-;;;;;;;;;;;;;:::i;5514:1067::-;5557:12;5572:20;6831:18;6825:25;;6700:187;5572:20;5557:35;-1:-1:-1;5610:18:3;;;5602:68;;;;;;;2168:2:61;5602:68:3;;;2150:21:61;2207:2;2187:18;;;2180:30;2246:34;2226:18;;;2219:62;2317:7;2297:18;;;2290:35;2342:19;;5602:68:3;;;;;;;;;5792:14;5787:3;5782;5769:38;5966:3;5961;5945:14;5940:3;5934:4;5927:5;5914:56;6263:16;6258:3;6253;6238:42;6387:7;6377:80;;6426:16;6421:3;6414:29;6377:80;;6548:16;6543:3;6536:29;3108:131;7126:9;7120:16;1912:25;;:10;:25;;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;3197:35:::1;3216:15;3197:18;:35::i;:::-;3108:131:::0;:::o;1908:190::-;2073:14;:12;:14::i;3588:436::-;3753:12;1926:11;7126:9;7120:16;;7002:172;1926:11;1912:25;;:10;:25;;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;3781:35:::1;3800:15;3781:18;:35::i;:::-;3827:12;3841:23:::0;3868:15:::1;:28;;3897:5;;3868:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3826:77;;;;3921:7;3913:77;;;::::0;::::1;::::0;;2850:2:61;3913:77:3::1;::::0;::::1;2832:21:61::0;2889:2;2869:18;;;2862:30;2928:34;2908:18;;;2901:62;2999:27;2979:18;;;2972:55;3044:19;;3913:77:3::1;2648:421:61::0;3913:77:3::1;4007:10:::0;-1:-1:-1;1908:190:3;;-1:-1:-1;1908:190:3;;2073:14;:12;:14::i;:::-;3588:436;;;;;:::o;4636:123::-;4706:7;1926:11;7126:9;7120:16;;7002:172;1926:11;1912:25;;:10;:25;;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;-1:-1:-1;6831:18:3;6825:25;;4636:123::o;1908:190::-;2073:14;:12;:14::i;:::-;4636:123;:::o;4191:109::-;7126:9;7120:16;1912:25;;:10;:25;;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;4273:20:::1;4286:6;4273:12;:20::i;4412:105::-:0;4473:7;1926:11;7126:9;7120:16;;7002:172;1926:11;1912:25;;:10;:25;;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;-1:-1:-1;7126:9:3;7120:16;;4636:123::o;4894:194::-;4996:18;4989:43;;;5056:25;;;;;;;;;;;4894:194;:::o;5227:206::-;5284:16;5303:11;7126:9;7120:16;;7002:172;5303:11;5354:9;5347:25;;;5396:30;;;3258:42:61;3327:15;;;3309:34;;3379:15;;3374:2;3359:18;;3352:43;5284:30:3;;-1:-1:-1;5396:30:3;;3221:18:61;5396:30:3;;;;;;;5274:159;5227:206;:::o;14:196:61:-;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;1076:654::-;1186:4;1215:2;1244;1233:9;1226:21;1276:6;1270:13;1319:6;1314:2;1303:9;1299:18;1292:34;1344:1;1354:140;1368:6;1365:1;1362:13;1354:140;;;1463:14;;;1459:23;;1453:30;1429:17;;;1448:2;1425:26;1418:66;1383:10;;1354:140;;;1512:6;1509:1;1506:13;1503:91;;;1582:1;1577:2;1568:6;1557:9;1553:22;1549:31;1542:42;1503:91;-1:-1:-1;1646:2:61;1634:15;1651:66;1630:88;1615:104;;;;1721:2;1611:113;;1076:654;-1:-1:-1;;;1076:654:61:o;2372:271::-;2555:6;2547;2542:3;2529:33;2511:3;2581:16;;2606:13;;;2581:16;2372:271;-1:-1:-1;2372:271:61:o"},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"params\":{\"newAdmin\":\"The new owner of the contract\",\"previousAdmin\":\"The previous owner of the contract\"}},\"Upgraded(address)\":{\"params\":{\"implementation\":\"The address of the implementation contract\"}}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"returns\":{\"_0\":\"Owner address.\"}},\"changeAdmin(address)\":{\"params\":{\"_admin\":\"New owner of the proxy contract.\"}},\"constructor\":{\"params\":{\"_admin\":\"Address of the initial contract admin. Admin as the ability to access the               transparent proxy interface.\"}},\"implementation()\":{\"returns\":{\"_0\":\"Implementation address.\"}},\"upgradeTo(address)\":{\"params\":{\"_implementation\":\"Address of the implementation contract.\"}},\"upgradeToAndCall(address,bytes)\":{\"params\":{\"_data\":\"Calldata to delegatecall the new implementation with.\",\"_implementation\":\"Address of the implementation contract.\"}}},\"title\":\"Proxy\",\"version\":1},\"userdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"notice\":\"An event that is emitted each time the owner is upgraded. This event is part of the         EIP-1967 specification.\"},\"Upgraded(address)\":{\"notice\":\"An event that is emitted each time the implementation is changed. This event is part         of the EIP-1967 specification.\"}},\"kind\":\"user\",\"methods\":{\"admin()\":{\"notice\":\"Gets the owner of the proxy contract.\"},\"changeAdmin(address)\":{\"notice\":\"Changes the owner of the proxy contract. Only callable by the owner.\"},\"constructor\":{\"notice\":\"Sets the initial admin during contract deployment. Admin address is stored at the         EIP-1967 admin storage slot so that accidental storage collision with the         implementation is not possible.\"},\"implementation()\":{\"notice\":\"Queries the implementation address.\"},\"upgradeTo(address)\":{\"notice\":\"Set the implementation contract address. The code at the given address will execute         when this contract is called.\"},\"upgradeToAndCall(address,bytes)\":{\"notice\":\"Set the implementation and call a function in a single transaction. Useful to ensure         atomic execution of initialization-based upgrades.\"}},\"notice\":\"Proxy is a transparent proxy that passes through the call if the caller is the owner or         if the caller is address(0), meaning that the call originated from an off-chain         simulation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol":{"Lib_MerkleTree":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"114:6616:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;114:6616:4;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"114:6616:4:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"River Keefer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Lib_MerkleTree\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol\":\"Lib_MerkleTree\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol\":{\"keccak256\":\"0x84351e7b8be5007b77a67c1e3f34f46ed0c1ddc67e4e76797fd06f01ca9325aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22ed0713a12ccabd7a9fedbb742e3d6334b894c91650861b63ea2e5859c03850\",\"dweb:/ipfs/QmbiKKsz3jpKw332tfYtXsZBh4zV8PcSushMWgDko1DJd9\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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.\",\"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.\"}},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c8cb3cd19a44bbfb6612605affb7d8b06cee1f6aa9362a37a8672b4f7eeaf8\",\"dweb:/ipfs/QmasyxFDBUp7k5KFgfDWEzM8PYSKEq7GVznzMJ1VxVRF4B\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1177,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":1180,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1794,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":962,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":1082,"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"}}}}},"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol":{"ERC2771ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"forwarder","type":"address"}],"name":"isTrustedForwarder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isTrustedForwarder(address)":"572b6c05"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Context variant with ERC2771 support.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"}},\"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\"},\"_trustedForwarder\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol\":\"ERC2771ContextUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol\":{\"keccak256\":\"0x10d677119c17bf67ce9ba5edcfbf45ae9f086296fd37f1ccbf533344b71e6951\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://209a350bfe2df45139a9192d6aa9340229dcc0f7a6733cb15af4c6dcf1d41d82\",\"dweb:/ipfs/QmVH6iWVuER6uFRUV9gJh6zcUJh4hTvbpidnxLptsuVdrS\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1177,"contract":"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol:ERC2771ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":1180,"contract":"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol:ERC2771ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1794,"contract":"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol:ERC2771ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":1169,"contract":"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol:ERC2771ContextUpgradeable","label":"__gap","offset":0,"slot":"51","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"}}}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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] ```solidity 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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1177,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":1180,"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"}}}}},"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol":{"ReentrancyGuardUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"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\":{},\"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/security/ReentrancyGuardUpgradeable.sol\":\"ReentrancyGuardUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb82ef33f43b6b96109687d91b39c94573fdccaaa423fe28e8ba0977b31c023e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9c629f63e66379f9c868a74f971064701cc6e30583872aa653f8b932518025\",\"dweb:/ipfs/QmY4MnZF2VMFwJkAwpdQwxEWA3KcGbNBKEmAVYePMVQWUR\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1177,"contract":"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":1180,"contract":"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1353,"contract":"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable","label":"_status","offset":0,"slot":"1","type":"t_uint256"},{"astId":1422,"contract":"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol:ReentrancyGuardUpgradeable","label":"__gap","offset":0,"slot":"2","type":"t_array(t_uint256)49_storage"}],"types":{"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"AddressUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"194:9180:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9180:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"194:9180:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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.\",\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1177,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":1180,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1794,"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"}}}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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.15+commit.e14f2714\"},\"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.\",\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1820,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1815_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)1815_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1815_storage"},"t_struct(RoleData)1815_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1812,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1814,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":2192,"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"}}}}},"@openzeppelin/contracts/interfaces/IERC5267.sol":{"IERC5267":{"abi":[{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"eip712Domain()":"84b0196e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":\"IERC5267\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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] ```solidity 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/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":2329,"contract":"@openzeppelin/contracts/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":2332,"contract":"@openzeppelin/contracts/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"}}}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"194:9169:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9169:16;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"194:9169:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/ShortStrings.sol":{"ShortStrings":{"abi":[{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"1235:3050:18:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1235:3050:18;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"1235:3050:18:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"This library provides functions to convert short memory strings into a `ShortString` type that can be used as an immutable variable. Strings of arbitrary length can be optimized using this library if they are short enough (up to 31 bytes) by packing them with their length (1 byte) in a single EVM word (32 bytes). Additionally, a fallback mechanism can be used for every other case. Usage example: ```solidity contract Named {     using ShortStrings for *;     ShortString private immutable _name;     string private _nameFallback;     constructor(string memory contractName) {         _name = contractName.toShortStringWithFallback(_nameFallback);     }     function name() external view returns (string memory) {         return _name.toStringWithFallback(_nameFallback);     } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/ShortStrings.sol\":\"ShortStrings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"1420:2685:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1420:2685:19;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"1420:2685:19:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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: ```solidity 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`, `uint256`._ _Available since v4.9 for `string`, `bytes`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"220:2559:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:20;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"220:2559:20:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"369:8761:21:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:8761:21;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"369:8761:21:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"EIP712":{"abi":[{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"eip712Domain()":"84b0196e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable state-variable-assignment\",\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain separator of the implementation contract. This will cause the `_domainSeparatorV4` function to always rebuild the separator from the immutable values, which is cheaper than accessing a cached version in cold storage. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":\"EIP712\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":3797,"contract":"@openzeppelin/contracts/utils/cryptography/EIP712.sol:EIP712","label":"_nameFallback","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3799,"contract":"@openzeppelin/contracts/utils/cryptography/EIP712.sol:EIP712","label":"_versionFallback","offset":0,"slot":"1","type":"t_string_storage"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"202:12582:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:26;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"202:12582:26:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"215:1047:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"215:1047:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@thirdweb-dev/contracts/forwarder/Forwarder.sol":{"Forwarder":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Forwarder.ForwardRequest","name":"req","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct Forwarder.ForwardRequest","name":"req","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3857":{"entryPoint":null,"id":3857,"parameterSlots":2,"returnSlots":0},"@_5017":{"entryPoint":null,"id":5017,"parameterSlots":0,"returnSlots":0},"@_buildDomainSeparator_3904":{"entryPoint":null,"id":3904,"parameterSlots":0,"returnSlots":1},"@getStringSlot_3146":{"entryPoint":458,"id":3146,"parameterSlots":1,"returnSlots":1},"@toShortStringWithFallback_3000":{"entryPoint":302,"id":3000,"parameterSlots":2,"returnSlots":1},"@toShortString_2902":{"entryPoint":382,"id":2902,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":830,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":543,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":918,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":626,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":483,"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":461,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4130:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:61","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:61","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:61","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:61"},"nodeType":"YulFunctionCall","src":"66:20:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:61"},"nodeType":"YulFunctionCall","src":"56:31:61"},"nodeType":"YulExpressionStatement","src":"56:31:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:61"},"nodeType":"YulFunctionCall","src":"96:15:61"},"nodeType":"YulExpressionStatement","src":"96:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:61"},"nodeType":"YulFunctionCall","src":"120:15:61"},"nodeType":"YulExpressionStatement","src":"120:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:61"},{"body":{"nodeType":"YulBlock","src":"201:325:61","statements":[{"nodeType":"YulAssignment","src":"211:22:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:61","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:61"},"nodeType":"YulFunctionCall","src":"221:12:61"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:61","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:61"},"nodeType":"YulFunctionCall","src":"268:12:61"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:61","statements":[{"nodeType":"YulAssignment","src":"321:27:61","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:61","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:61"},"nodeType":"YulFunctionCall","src":"331:17:61"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:61"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:61"},"nodeType":"YulFunctionCall","src":"292:26:61"},"nodeType":"YulIf","src":"289:61:61"},{"body":{"nodeType":"YulBlock","src":"409:111:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:61","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:61","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:61","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:61"},"nodeType":"YulFunctionCall","src":"433:20:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:61"},"nodeType":"YulFunctionCall","src":"423:31:61"},"nodeType":"YulExpressionStatement","src":"423:31:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:61","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:61"},"nodeType":"YulFunctionCall","src":"467:15:61"},"nodeType":"YulExpressionStatement","src":"467:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:61"},"nodeType":"YulFunctionCall","src":"495:15:61"},"nodeType":"YulExpressionStatement","src":"495:15:61"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:61"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:61","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:61"},"nodeType":"YulFunctionCall","src":"385:14:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:61"},"nodeType":"YulFunctionCall","src":"362:38:61"},"nodeType":"YulIf","src":"359:161:61"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:61","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:61","type":""}],"src":"146:380:61"},{"body":{"nodeType":"YulBlock","src":"587:65:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:61","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:61"},"nodeType":"YulFunctionCall","src":"597:14:61"},"nodeType":"YulExpressionStatement","src":"597:14:61"},{"nodeType":"YulAssignment","src":"620:26:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:61","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:61"},"nodeType":"YulFunctionCall","src":"628:18:61"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:61"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:61","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:61","type":""}],"src":"531:121:61"},{"body":{"nodeType":"YulBlock","src":"738:464:61","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:61","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:61","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:61","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:61"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:61"},"nodeType":"YulFunctionCall","src":"809:17:61"},"nodeType":"YulExpressionStatement","src":"809:17:61"},{"nodeType":"YulVariableDeclaration","src":"839:31:61","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:61","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:61"},"nodeType":"YulFunctionCall","src":"851:19:61"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:61","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:61"},"nodeType":"YulFunctionCall","src":"919:19:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:61"},"nodeType":"YulFunctionCall","src":"912:27:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:61"},"nodeType":"YulFunctionCall","src":"902:38:61"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:61","statements":[{"nodeType":"YulAssignment","src":"979:19:61","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:61"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:61"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:61","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:61"},"nodeType":"YulFunctionCall","src":"956:20:61"},"nodeType":"YulIf","src":"953:47:61"},{"nodeType":"YulVariableDeclaration","src":"1013:41:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:61","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:61"},"nodeType":"YulFunctionCall","src":"1040:12:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:61"},"nodeType":"YulFunctionCall","src":"1033:20:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:61"},"nodeType":"YulFunctionCall","src":"1023:31:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:61","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:61"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:61","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:61"},"nodeType":"YulFunctionCall","src":"1167:17:61"},"nodeType":"YulExpressionStatement","src":"1167:17:61"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:61"},"nodeType":"YulFunctionCall","src":"1112:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:61","statements":[{"nodeType":"YulAssignment","src":"1128:22:61","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:61"},"nodeType":"YulFunctionCall","src":"1137:13:61"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:61"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:61","statements":[]},"src":"1104:82:61"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:61","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:61"},"nodeType":"YulFunctionCall","src":"751:11:61"},"nodeType":"YulIf","src":"748:448:61"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:61","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:61","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:61","type":""}],"src":"657:545:61"},{"body":{"nodeType":"YulBlock","src":"1292:81:61","statements":[{"nodeType":"YulAssignment","src":"1302:65:61","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:61"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:61","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:61"},"nodeType":"YulFunctionCall","src":"1331:11:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:61","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:61"},"nodeType":"YulFunctionCall","src":"1344:6:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:61"},"nodeType":"YulFunctionCall","src":"1327:24:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:61"},"nodeType":"YulFunctionCall","src":"1323:29:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:61"},"nodeType":"YulFunctionCall","src":"1313:40:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:61","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:61"},"nodeType":"YulFunctionCall","src":"1355:11:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:61"},"nodeType":"YulFunctionCall","src":"1310:57:61"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:61"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:61","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:61","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:61","type":""}],"src":"1207:166:61"},{"body":{"nodeType":"YulBlock","src":"1474:1256:61","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:61"},"nodeType":"YulFunctionCall","src":"1498:10:61"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:61"},"nodeType":"YulFunctionCall","src":"1553:18:61"},"nodeType":"YulExpressionStatement","src":"1553:18:61"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:61","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:61"},"nodeType":"YulFunctionCall","src":"1535:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:61"},"nodeType":"YulFunctionCall","src":"1531:18:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:61"},"nodeType":"YulFunctionCall","src":"1520:30:61"},"nodeType":"YulIf","src":"1517:56:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:61"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:61"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:61"},"nodeType":"YulFunctionCall","src":"1658:11:61"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:61"},"nodeType":"YulFunctionCall","src":"1632:38:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:61"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:61"},"nodeType":"YulFunctionCall","src":"1582:97:61"},"nodeType":"YulExpressionStatement","src":"1582:97:61"},{"nodeType":"YulVariableDeclaration","src":"1688:18:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:61","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:61","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:61","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:61","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:61"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:61"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:61","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:61","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:61","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:61"},"nodeType":"YulFunctionCall","src":"1858:7:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:61"},"nodeType":"YulFunctionCall","src":"1846:20:61"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:61","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:61"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:61"},"nodeType":"YulFunctionCall","src":"1893:35:61"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:61","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:61"},"nodeType":"YulFunctionCall","src":"2067:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:61"},"nodeType":"YulFunctionCall","src":"2061:26:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:61"},"nodeType":"YulFunctionCall","src":"2046:42:61"},"nodeType":"YulExpressionStatement","src":"2046:42:61"},{"nodeType":"YulAssignment","src":"2105:24:61","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:61"},"nodeType":"YulFunctionCall","src":"2115:14:61"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:61"}]},{"nodeType":"YulAssignment","src":"2146:40:61","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:61"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:61"},"nodeType":"YulFunctionCall","src":"2159:27:61"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:61"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:61"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:61"},"nodeType":"YulFunctionCall","src":"1972:14:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:61","statements":[{"nodeType":"YulAssignment","src":"1989:24:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:61"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:61"},"nodeType":"YulFunctionCall","src":"1994:19:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:61","statements":[]},"src":"1964:236:61"},{"body":{"nodeType":"YulBlock","src":"2248:166:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:61","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:61"},"nodeType":"YulFunctionCall","src":"2289:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:61"},"nodeType":"YulFunctionCall","src":"2283:26:61"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:61","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:61"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:61","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:61"},"nodeType":"YulFunctionCall","src":"2368:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:61","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:61"},"nodeType":"YulFunctionCall","src":"2364:24:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:61","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:61"},"nodeType":"YulFunctionCall","src":"2390:6:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:61"},"nodeType":"YulFunctionCall","src":"2360:37:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:61"},"nodeType":"YulFunctionCall","src":"2356:42:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:61"},"nodeType":"YulFunctionCall","src":"2341:58:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:61"},"nodeType":"YulFunctionCall","src":"2326:74:61"},"nodeType":"YulExpressionStatement","src":"2326:74:61"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:61"},"nodeType":"YulFunctionCall","src":"2216:19:61"},"nodeType":"YulIf","src":"2213:201:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:61","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:61"},"nodeType":"YulFunctionCall","src":"2444:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:61"},"nodeType":"YulFunctionCall","src":"2440:22:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:61"},"nodeType":"YulFunctionCall","src":"2427:36:61"},"nodeType":"YulExpressionStatement","src":"2427:36:61"}]},"nodeType":"YulCase","src":"1810:663:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:61","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:61","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:61","statements":[{"nodeType":"YulAssignment","src":"2571:35:61","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:61"},"nodeType":"YulFunctionCall","src":"2586:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:61"},"nodeType":"YulFunctionCall","src":"2580:26:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:61"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:61"},"nodeType":"YulIf","src":"2531:89:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:61"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:61"},"nodeType":"YulFunctionCall","src":"2646:67:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:61"},"nodeType":"YulFunctionCall","src":"2633:81:61"},"nodeType":"YulExpressionStatement","src":"2633:81:61"}]},"nodeType":"YulCase","src":"2482:242:61","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:61","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:61"},"nodeType":"YulFunctionCall","src":"1787:14:61"},"nodeType":"YulSwitch","src":"1780:944:61"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:61","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:61","type":""}],"src":"1378:1352:61"},{"body":{"nodeType":"YulBlock","src":"2948:276:61","statements":[{"nodeType":"YulAssignment","src":"2958:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2970:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2981:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2966:3:61"},"nodeType":"YulFunctionCall","src":"2966:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2958:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3001:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"3012:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2994:6:61"},"nodeType":"YulFunctionCall","src":"2994:25:61"},"nodeType":"YulExpressionStatement","src":"2994:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3039:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3050:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3035:3:61"},"nodeType":"YulFunctionCall","src":"3035:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"3055:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3028:6:61"},"nodeType":"YulFunctionCall","src":"3028:34:61"},"nodeType":"YulExpressionStatement","src":"3028:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3082:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3093:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3078:3:61"},"nodeType":"YulFunctionCall","src":"3078:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"3098:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:61"},"nodeType":"YulFunctionCall","src":"3071:34:61"},"nodeType":"YulExpressionStatement","src":"3071:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3125:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3136:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3121:3:61"},"nodeType":"YulFunctionCall","src":"3121:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"3141:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3114:6:61"},"nodeType":"YulFunctionCall","src":"3114:34:61"},"nodeType":"YulExpressionStatement","src":"3114:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3168:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3179:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3164:3:61"},"nodeType":"YulFunctionCall","src":"3164:19:61"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3189:6:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3205:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3210:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3201:3:61"},"nodeType":"YulFunctionCall","src":"3201:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"3214:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3197:3:61"},"nodeType":"YulFunctionCall","src":"3197:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3185:3:61"},"nodeType":"YulFunctionCall","src":"3185:32:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3157:6:61"},"nodeType":"YulFunctionCall","src":"3157:61:61"},"nodeType":"YulExpressionStatement","src":"3157:61:61"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2885:9:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2896:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2904:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2912:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2920:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2928:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2939:4:61","type":""}],"src":"2735:489:61"},{"body":{"nodeType":"YulBlock","src":"3350:476:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3360:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3370:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3364:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3388:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3399:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3381:6:61"},"nodeType":"YulFunctionCall","src":"3381:21:61"},"nodeType":"YulExpressionStatement","src":"3381:21:61"},{"nodeType":"YulVariableDeclaration","src":"3411:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3431:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3425:5:61"},"nodeType":"YulFunctionCall","src":"3425:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3415:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3458:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3469:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3454:3:61"},"nodeType":"YulFunctionCall","src":"3454:18:61"},{"name":"length","nodeType":"YulIdentifier","src":"3474:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3447:6:61"},"nodeType":"YulFunctionCall","src":"3447:34:61"},"nodeType":"YulExpressionStatement","src":"3447:34:61"},{"nodeType":"YulVariableDeclaration","src":"3490:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3499:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3494:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3559:90:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3588:9:61"},{"name":"i","nodeType":"YulIdentifier","src":"3599:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3584:3:61"},"nodeType":"YulFunctionCall","src":"3584:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"3603:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3580:3:61"},"nodeType":"YulFunctionCall","src":"3580:26:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3622:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"3630:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3618:3:61"},"nodeType":"YulFunctionCall","src":"3618:14:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3634:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3614:3:61"},"nodeType":"YulFunctionCall","src":"3614:23:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3608:5:61"},"nodeType":"YulFunctionCall","src":"3608:30:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3573:6:61"},"nodeType":"YulFunctionCall","src":"3573:66:61"},"nodeType":"YulExpressionStatement","src":"3573:66:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3520:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3523:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3517:2:61"},"nodeType":"YulFunctionCall","src":"3517:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3531:19:61","statements":[{"nodeType":"YulAssignment","src":"3533:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3542:1:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3545:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3538:3:61"},"nodeType":"YulFunctionCall","src":"3538:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3533:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3513:3:61","statements":[]},"src":"3509:140:61"},{"body":{"nodeType":"YulBlock","src":"3683:66:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3712:9:61"},{"name":"length","nodeType":"YulIdentifier","src":"3723:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3708:3:61"},"nodeType":"YulFunctionCall","src":"3708:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"3732:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3704:3:61"},"nodeType":"YulFunctionCall","src":"3704:31:61"},{"kind":"number","nodeType":"YulLiteral","src":"3737:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3697:6:61"},"nodeType":"YulFunctionCall","src":"3697:42:61"},"nodeType":"YulExpressionStatement","src":"3697:42:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3664:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3667:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3661:2:61"},"nodeType":"YulFunctionCall","src":"3661:13:61"},"nodeType":"YulIf","src":"3658:91:61"},{"nodeType":"YulAssignment","src":"3758:62:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3774:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3793:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3801:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3789:3:61"},"nodeType":"YulFunctionCall","src":"3789:15:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3810:2:61","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3806:3:61"},"nodeType":"YulFunctionCall","src":"3806:7:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3785:3:61"},"nodeType":"YulFunctionCall","src":"3785:29:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3770:3:61"},"nodeType":"YulFunctionCall","src":"3770:45:61"},{"kind":"number","nodeType":"YulLiteral","src":"3817:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3766:3:61"},"nodeType":"YulFunctionCall","src":"3766:54:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3758:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3319:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3330:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3341:4:61","type":""}],"src":"3229:597:61"},{"body":{"nodeType":"YulBlock","src":"3925:203:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3935:26:61","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3955:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3949:5:61"},"nodeType":"YulFunctionCall","src":"3949:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3939:6:61","type":""}]},{"nodeType":"YulAssignment","src":"3970:32:61","value":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3989:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3996:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3985:3:61"},"nodeType":"YulFunctionCall","src":"3985:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3979:5:61"},"nodeType":"YulFunctionCall","src":"3979:23:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3970:5:61"}]},{"body":{"nodeType":"YulBlock","src":"4039:83:61","statements":[{"nodeType":"YulAssignment","src":"4053:59:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4066:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4081:1:61","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4088:4:61","type":"","value":"0x20"},{"name":"length","nodeType":"YulIdentifier","src":"4094:6:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4084:3:61"},"nodeType":"YulFunctionCall","src":"4084:17:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4077:3:61"},"nodeType":"YulFunctionCall","src":"4077:25:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4108:1:61","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4104:3:61"},"nodeType":"YulFunctionCall","src":"4104:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4073:3:61"},"nodeType":"YulFunctionCall","src":"4073:38:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4062:3:61"},"nodeType":"YulFunctionCall","src":"4062:50:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4053:5:61"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4017:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4025:4:61","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4014:2:61"},"nodeType":"YulFunctionCall","src":"4014:16:61"},"nodeType":"YulIf","src":"4011:111:61"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"3905:5:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3915:5:61","type":""}],"src":"3831:297:61"}]},"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 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_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(_1, array)\n            let data := keccak256(_1, 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_string_memory_ptr_to_t_string_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_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\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), 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_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__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), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\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, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), 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        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), 0)\n        }\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), not(0)))\n        }\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040523480156200001257600080fd5b506040518060400160405280600f81526020016e23a9a73b19102337b93bb0b93232b960891b81525060405180604001604052806005815260200164302e302e3160d81b815250620000746000836200012e60201b620005d21790919060201c565b61012052620000918160016200012e602090811b620005d217901c565b61014052815160208084019190912060e052815190820120610100524660a0526200011f60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052620003bb565b60006020835110156200014e5762000146836200017e565b905062000178565b826200016583620001ca60201b620006051760201c565b9062000172908262000272565b5060ff90505b92915050565b600080829050601f81511115620001b5578260405163305a27a960e01b8152600401620001ac91906200033e565b60405180910390fd5b8051620001c28262000396565b179392505050565b90565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001f857607f821691505b6020821081036200021957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026d57600081815260208120601f850160051c81016020861015620002485750805b601f850160051c820191505b81811015620002695782815560010162000254565b5050505b505050565b81516001600160401b038111156200028e576200028e620001cd565b620002a6816200029f8454620001e3565b846200021f565b602080601f831160018114620002de5760008415620002c55750858301515b600019600386901b1c1916600185901b17855562000269565b600085815260208120601f198616915b828110156200030f57888601518255948401946001909101908401620002ee565b50858210156200032e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b818110156200036d578581018301518582016040015282016200034f565b8181111562000380576000604083870101525b50601f01601f1916929092016040019392505050565b80516020808301519190811015620002195760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516111e86200041660003960006103a60152600061037c015260006108950152600061086d015260006107c8015260006107f20152600061081c01526111e86000f3fe60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461009a57806384b0196e146100bb578063bf5d3bdb146100e3575b600080fd5b34801561005057600080fd5b5061008761005f366004610baa565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100ad6100a8366004610be7565b610113565b604051610091929190610ce2565b3480156100c757600080fd5b506100d061036e565b6040516100919796959493929190610d05565b3480156100ef57600080fd5b506101036100fe366004610be7565b610412565b6040519015158152602001610091565b60006060610122858585610412565b6101995760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f657360448201527f206e6f74206d617463682072657175657374000000000000000000000000000060648201526084015b60405180910390fd5b6101a860808601356001610dc4565b600260006101b96020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008086602001602081019061020d9190610baa565b73ffffffffffffffffffffffffffffffffffffffff166060880135604089013561023a60a08b018b610e03565b61024760208d018d610baa565b60405160200161025993929190610e68565b60408051601f198184030181529082905261027391610ea1565b600060405180830381858888f193505050503d80600081146102b1576040519150601f19603f3d011682016040523d82523d6000602084013e6102b6565b606091505b509150915081610345576044815110156103125760405162461bcd60e51b815260206004820152601d60248201527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006044820152606401610190565b6004810190508080602001905181019061032c9190610eec565b60405162461bcd60e51b81526004016101909190610f99565b610354603f6060890135610fac565b5a1161036257610362610fe7565b90969095509350505050565b6000606080828080836103a17f000000000000000000000000000000000000000000000000000000000000000083610608565b6103cc7f00000000000000000000000000000000000000000000000000000000000000006001610608565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60008061053284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061052c92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e489150610482905060208a018a610baa565b61049260408b0160208c01610baa565b60408b013560608c013560808d01356104ae60a08f018f610e03565b6040516104bc929190611016565b60408051918290038220602083019890985273ffffffffffffffffffffffffffffffffffffffff96871690820152949093166060850152608084019190915260a083015260c082015260e081019190915261010001604051602081830303815290604052805190602001206106ac565b906106f4565b905060808501356002600061054a6020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156105c9575061059a6020860186610baa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b95945050505050565b60006020835110156105ee576105e783610718565b90506105ff565b816105f984826110c8565b5060ff90505b92915050565b90565b606060ff831461061b576105e78361076f565b81805461062790611026565b80601f016020809104026020016040519081016040528092919081815260200182805461065390611026565b80156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505090506105ff565b60006105ff6106b96107ae565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061070385856108eb565b9150915061071081610930565b509392505050565b600080829050601f8151111561075c57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016101909190610f99565b805161076782611188565b179392505050565b6060600061077c83610a98565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561081457507f000000000000000000000000000000000000000000000000000000000000000046145b1561083e57507f000000000000000000000000000000000000000000000000000000000000000090565b6108e6604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b60008082516041036109215760208301516040840151606085015160001a61091587828585610ad9565b94509450505050610929565b506000905060025b9250929050565b6000816004811115610944576109446111ac565b0361094c5750565b6001816004811115610960576109606111ac565b036109ad5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610190565b60028160048111156109c1576109c16111ac565b03610a0e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610190565b6003816004811115610a2257610a226111ac565b03610a955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610190565b50565b600060ff8216601f8111156105ff576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b105750600090506003610ba1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610b64573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116610b9a57600060019250925050610ba1565b9150600090505b94509492505050565b600060208284031215610bbc57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610be057600080fd5b9392505050565b600080600060408486031215610bfc57600080fd5b833567ffffffffffffffff80821115610c1457600080fd5b9085019060c08288031215610c2857600080fd5b90935060208501359080821115610c3e57600080fd5b818601915086601f830112610c5257600080fd5b813581811115610c6157600080fd5b876020828501011115610c7357600080fd5b6020830194508093505050509250925092565b60005b83811015610ca1578181015183820152602001610c89565b83811115610cb0576000848401525b50505050565b60008151808452610cce816020860160208601610c86565b601f01601f19169290920160200192915050565b8215158152604060208201526000610cfd6040830184610cb6565b949350505050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e081840152610d4160e084018a610cb6565b8381036040850152610d53818a610cb6565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610db257835183529284019291840191600101610d96565b50909c9b505050505050505050505050565b60008219821115610dfe577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e3857600080fd5b83018035915067ffffffffffffffff821115610e5357600080fd5b60200191503681900382131561092957600080fd5b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b60008251610eb3818460208701610c86565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610efe57600080fd5b815167ffffffffffffffff80821115610f1657600080fd5b818401915084601f830112610f2a57600080fd5b815181811115610f3c57610f3c610ebd565b604051601f8201601f19908116603f01168101908382118183101715610f6457610f64610ebd565b81604052828152876020848701011115610f7d57600080fd5b610f8e836020830160208801610c86565b979650505050505050565b602081526000610be06020830184610cb6565b600082610fe2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b600181811c9082168061103a57607f821691505b602082108103611073577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156110c357600081815260208120601f850160051c810160208610156110a05750805b601f850160051c820191505b818110156110bf578281556001016110ac565b5050505b505050565b815167ffffffffffffffff8111156110e2576110e2610ebd565b6110f6816110f08454611026565b84611079565b602080601f83116001811461112b57600084156111135750858301515b600019600386901b1c1916600185901b1785556110bf565b600085815260208120601f198616915b8281101561115a5788860151825594840194600190910190840161113b565b50858210156111785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b805160208083015191908110156110735760001960209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x23A9A73B19102337B93BB0B93232B9 PUSH1 0x89 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x302E302E31 PUSH1 0xD8 SHL DUP2 MSTORE POP PUSH3 0x74 PUSH1 0x0 DUP4 PUSH3 0x12E PUSH1 0x20 SHL PUSH3 0x5D2 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x120 MSTORE PUSH3 0x91 DUP2 PUSH1 0x1 PUSH3 0x12E PUSH1 0x20 SWAP1 DUP2 SHL PUSH3 0x5D2 OR SWAP1 SHR JUMP JUMPDEST PUSH2 0x140 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0xE0 MSTORE DUP2 MLOAD SWAP1 DUP3 ADD KECCAK256 PUSH2 0x100 MSTORE CHAINID PUSH1 0xA0 MSTORE PUSH3 0x11F PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x80 MSTORE POP POP ADDRESS PUSH1 0xC0 MSTORE PUSH3 0x3BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD LT ISZERO PUSH3 0x14E JUMPI PUSH3 0x146 DUP4 PUSH3 0x17E JUMP JUMPDEST SWAP1 POP PUSH3 0x178 JUMP JUMPDEST DUP3 PUSH3 0x165 DUP4 PUSH3 0x1CA PUSH1 0x20 SHL PUSH3 0x605 OR PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 PUSH3 0x172 SWAP1 DUP3 PUSH3 0x272 JUMP JUMPDEST POP PUSH1 0xFF SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x1F DUP2 MLOAD GT ISZERO PUSH3 0x1B5 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH4 0x305A27A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1AC SWAP2 SWAP1 PUSH3 0x33E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH3 0x1C2 DUP3 PUSH3 0x396 JUMP JUMPDEST OR SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 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 PUSH3 0x1F8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x219 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 PUSH3 0x26D JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x248 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x269 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x254 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x28E JUMPI PUSH3 0x28E PUSH3 0x1CD JUMP JUMPDEST PUSH3 0x2A6 DUP2 PUSH3 0x29F DUP5 SLOAD PUSH3 0x1E3 JUMP JUMPDEST DUP5 PUSH3 0x21F JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x2DE JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x2C5 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 PUSH3 0x269 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x30F JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x2EE JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x32E 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 PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x36D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH3 0x34F JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH3 0x380 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH3 0x219 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x11E8 PUSH3 0x416 PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x3A6 ADD MSTORE PUSH1 0x0 PUSH2 0x37C ADD MSTORE PUSH1 0x0 PUSH2 0x895 ADD MSTORE PUSH1 0x0 PUSH2 0x86D ADD MSTORE PUSH1 0x0 PUSH2 0x7C8 ADD MSTORE PUSH1 0x0 PUSH2 0x7F2 ADD MSTORE PUSH1 0x0 PUSH2 0x81C ADD MSTORE PUSH2 0x11E8 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x47153F82 EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0xBF5D3BDB EQ PUSH2 0xE3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH2 0x5F CALLDATASIZE PUSH1 0x4 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAD PUSH2 0xA8 CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x113 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x91 SWAP3 SWAP2 SWAP1 PUSH2 0xCE2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH2 0x36E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x91 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x103 PUSH2 0xFE CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x91 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH2 0x122 DUP6 DUP6 DUP6 PUSH2 0x412 JUMP JUMPDEST PUSH2 0x199 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D696E696D616C466F727761726465723A207369676E617475726520646F6573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206E6F74206D6174636820726571756573740000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A8 PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH2 0xDC4 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 PUSH2 0x1B9 PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP7 PUSH1 0x20 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH2 0x23A PUSH1 0xA0 DUP12 ADD DUP12 PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x247 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x259 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x273 SWAP2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2B1 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 0x2B6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x345 JUMPI PUSH1 0x44 DUP2 MLOAD LT ISZERO PUSH2 0x312 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 0x5472616E73616374696F6E2072657665727465642073696C656E746C79000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x32C SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0x354 PUSH1 0x3F PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH2 0xFAC JUMP JUMPDEST GAS GT PUSH2 0x362 JUMPI PUSH2 0x362 PUSH2 0xFE7 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 PUSH2 0x3A1 PUSH32 0x0 DUP4 PUSH2 0x608 JUMP JUMPDEST PUSH2 0x3CC PUSH32 0x0 PUSH1 0x1 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH32 0xF00000000000000000000000000000000000000000000000000000000000000 SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP CHAINID SWAP8 POP ADDRESS SWAP7 POP SWAP5 POP SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x532 DUP5 DUP5 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 0x52C SWAP3 POP PUSH32 0xDD8F4B70B0F4393E889BD39128A30628A78B61816A9EB8199759E7A349657E48 SWAP2 POP PUSH2 0x482 SWAP1 POP PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x492 PUSH1 0x40 DUP12 ADD PUSH1 0x20 DUP13 ADD PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x40 DUP12 ADD CALLDATALOAD PUSH1 0x60 DUP13 ADD CALLDATALOAD PUSH1 0x80 DUP14 ADD CALLDATALOAD PUSH2 0x4AE PUSH1 0xA0 DUP16 ADD DUP16 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP3 SWAP2 SWAP1 PUSH2 0x1016 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x20 DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND SWAP1 DUP3 ADD MSTORE SWAP5 SWAP1 SWAP4 AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x100 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x6AC JUMP JUMPDEST SWAP1 PUSH2 0x6F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH1 0x2 PUSH1 0x0 PUSH2 0x54A PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ DUP1 ISZERO PUSH2 0x5C9 JUMPI POP PUSH2 0x59A PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD LT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5E7 DUP4 PUSH2 0x718 JUMP JUMPDEST SWAP1 POP PUSH2 0x5FF JUMP JUMPDEST DUP2 PUSH2 0x5F9 DUP5 DUP3 PUSH2 0x10C8 JUMP JUMPDEST POP PUSH1 0xFF SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFF DUP4 EQ PUSH2 0x61B JUMPI PUSH2 0x5E7 DUP4 PUSH2 0x76F JUMP JUMPDEST DUP2 DUP1 SLOAD PUSH2 0x627 SWAP1 PUSH2 0x1026 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 0x653 SWAP1 PUSH2 0x1026 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x675 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6A0 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 0x683 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FF PUSH2 0x6B9 PUSH2 0x7AE JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x703 DUP6 DUP6 PUSH2 0x8EB JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x710 DUP2 PUSH2 0x930 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x1F DUP2 MLOAD GT ISZERO PUSH2 0x75C JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x305A27A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF99 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x767 DUP3 PUSH2 0x1188 JUMP JUMPDEST OR SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x77C DUP4 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP POP SWAP2 DUP3 MSTORE POP PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x83E JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x8E6 PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0x921 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x915 DUP8 DUP3 DUP6 DUP6 PUSH2 0xAD9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x929 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x944 JUMPI PUSH2 0x944 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0x94C JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x960 JUMPI PUSH2 0x960 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0x9AD 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 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x9C1 JUMPI PUSH2 0x9C1 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0xA0E 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 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA22 JUMPI PUSH2 0xA22 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0xA95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x190 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0x1F DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH1 0x40 MLOAD PUSH32 0xB3512B0C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0xB10 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0xBA1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB64 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xB9A JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0xBA1 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xBE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xBFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP6 ADD SWAP1 PUSH1 0xC0 DUP3 DUP9 SUB SLT ISZERO PUSH2 0xC28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0xC3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xC61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC73 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 0xCA1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC89 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xCCE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xCFD PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP9 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xE0 DUP2 DUP5 ADD MSTORE PUSH2 0xD41 PUSH1 0xE0 DUP5 ADD DUP11 PUSH2 0xCB6 JUMP JUMPDEST DUP4 DUP2 SUB PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xD53 DUP2 DUP11 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD DUP10 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD DUP8 SWAP1 MSTORE DUP5 DUP2 SUB PUSH1 0xC0 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE DUP4 DUP8 ADD SWAP3 POP SWAP1 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDB2 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xD96 JUMP JUMPDEST POP SWAP1 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xDFE JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT 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 0x0 DUP3 MLOAD PUSH2 0xEB3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xC86 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH2 0xF3C PUSH2 0xEBD 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 0xF64 JUMPI PUSH2 0xF64 PUSH2 0xEBD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8E DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xC86 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xBE0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFE2 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 0x1 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 PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x103A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1073 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 0x10C3 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x10A0 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x10BF JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10AC JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10E2 JUMPI PUSH2 0x10E2 PUSH2 0xEBD JUMP JUMPDEST PUSH2 0x10F6 DUP2 PUSH2 0x10F0 DUP5 SLOAD PUSH2 0x1026 JUMP JUMPDEST DUP5 PUSH2 0x1079 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x112B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1113 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 0x10BF JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x115A JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x113B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1178 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 DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x1073 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"903:1934:28:-:0;;;1336:51;;;;;;;;;;3178:431:22;;;;;;;;;;;;;-1:-1:-1;;;3178:431:22;;;;;;;;;;;;;;;;-1:-1:-1;;;3178:431:22;;;3251:45;3282:13;3251:4;:30;;;;;;:45;;;;:::i;:::-;3243:53;;3317:51;:7;3351:16;3317:33;;;;;;;:51;;:::i;:::-;3306:62;;3392:22;;;;;;;;;;3378:36;;3441:25;;;;;;3424:42;;3494:13;3477:30;;3542:23;4077:11;;4090:14;;4054:81;;;1929:95;4054:81;;;2994:25:61;3035:18;;;3028:34;;;;3078:18;;;3071:34;4106:13:22;3121:18:61;;;3114:34;4129:4:22;3164:19:61;;;3157:61;4018:7:22;;2966:19:61;;4054:81:22;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3542:23;3517:48;;-1:-1:-1;;3597:4:22;3575:27;;903:1934:28;;2895:341:18;2991:11;3040:2;3024:5;3018:19;:24;3014:216;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3014:216;3157:5;3116:32;3142:5;3116:25;;;;;:32;;:::i;:::-;:38;:46;;:38;:46;:::i;:::-;-1:-1:-1;1371:66:18;;-1:-1:-1;3014:216:18;2895:341;;;;:::o;1689:286::-;1754:11;1777:17;1803:3;1777:30;;1835:2;1821:4;:11;:16;1817:72;;;1874:3;1860:18;;-1:-1:-1;;;1860:18:18;;;;;;;;:::i;:::-;;;;;;;;1817:72;1955:11;;1938:13;1955:4;1938:13;:::i;:::-;1930:36;;1689:286;-1:-1:-1;;;1689:286:18:o;3310:202:19:-;3486:10;3310:202::o;14:127:61:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:61;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:61;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:61;;;2580:26;2531:89;-1:-1:-1;;1335:1:61;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:61;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:61;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:61;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:61:o;3229:597::-;3341:4;3370:2;3399;3388:9;3381:21;3431:6;3425:13;3474:6;3469:2;3458:9;3454:18;3447:34;3499:1;3509:140;3523:6;3520:1;3517:13;3509:140;;;3618:14;;;3614:23;;3608:30;3584:17;;;3603:2;3580:26;3573:66;3538:10;;3509:140;;;3667:6;3664:1;3661:13;3658:91;;;3737:1;3732:2;3723:6;3712:9;3708:22;3704:31;3697:42;3658:91;-1:-1:-1;3810:2:61;3789:15;-1:-1:-1;;3785:29:61;3770:45;;;;3817:2;3766:54;;3229:597;-1:-1:-1;;;3229:597:61:o;3831:297::-;3949:12;;3996:4;3985:16;;;3979:23;;3949:12;4014:16;;4011:111;;;-1:-1:-1;;4088:4:61;4084:17;;;;4081:1;4077:25;4073:38;4062:50;;3831:297;-1:-1:-1;3831:297:61:o;:::-;903:1934:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_buildDomainSeparator_3904":{"entryPoint":null,"id":3904,"parameterSlots":0,"returnSlots":1},"@_domainSeparatorV4_3883":{"entryPoint":1966,"id":3883,"parameterSlots":0,"returnSlots":1},"@_hashTypedDataV4_3920":{"entryPoint":1708,"id":3920,"parameterSlots":1,"returnSlots":1},"@_throwError_3452":{"entryPoint":2352,"id":3452,"parameterSlots":1,"returnSlots":0},"@byteLength_2960":{"entryPoint":2712,"id":2960,"parameterSlots":1,"returnSlots":1},"@eip712Domain_3967":{"entryPoint":878,"id":3967,"parameterSlots":0,"returnSlots":7},"@execute_5171":{"entryPoint":275,"id":5171,"parameterSlots":3,"returnSlots":2},"@getNonce_5029":{"entryPoint":null,"id":5029,"parameterSlots":1,"returnSlots":1},"@getStringSlot_3146":{"entryPoint":1541,"id":3146,"parameterSlots":1,"returnSlots":1},"@recover_3525":{"entryPoint":1780,"id":3525,"parameterSlots":2,"returnSlots":1},"@toShortStringWithFallback_3000":{"entryPoint":1490,"id":3000,"parameterSlots":2,"returnSlots":1},"@toShortString_2902":{"entryPoint":1816,"id":2902,"parameterSlots":1,"returnSlots":1},"@toStringWithFallback_3027":{"entryPoint":1544,"id":3027,"parameterSlots":2,"returnSlots":1},"@toString_2928":{"entryPoint":1903,"id":2928,"parameterSlots":1,"returnSlots":1},"@toTypedDataHash_3743":{"entryPoint":null,"id":3743,"parameterSlots":2,"returnSlots":1},"@tryRecover_3498":{"entryPoint":2283,"id":3498,"parameterSlots":2,"returnSlots":2},"@tryRecover_3666":{"entryPoint":2777,"id":3666,"parameterSlots":4,"returnSlots":2},"@verify_5081":{"entryPoint":1042,"id":5081,"parameterSlots":3,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2986,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":3820,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_ForwardRequest_$5000_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":3047,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_bytes":{"entryPoint":3254,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4118,"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":3688,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3745,"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_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3298,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":3333,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3993,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d0b1e7612ebe87924453e5d4581b9067879655587bae8a2dfee438433699b890__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":3587,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3524,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":4012,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":4217,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":4488,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":4296,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":3206,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":4134,"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_0x01":{"entryPoint":4071,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":4524,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3773,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14328:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:239:61","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:61"},"nodeType":"YulFunctionCall","src":"132:12:61"},"nodeType":"YulExpressionStatement","src":"132:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:61"},"nodeType":"YulFunctionCall","src":"101:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:61"},"nodeType":"YulFunctionCall","src":"97:32:61"},"nodeType":"YulIf","src":"94:52:61"},{"nodeType":"YulVariableDeclaration","src":"155:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"181:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"168:12:61"},"nodeType":"YulFunctionCall","src":"168:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"159:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"277:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"286:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"289:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"279:6:61"},"nodeType":"YulFunctionCall","src":"279:12:61"},"nodeType":"YulExpressionStatement","src":"279:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"213:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"231:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"220:3:61"},"nodeType":"YulFunctionCall","src":"220:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"210:2:61"},"nodeType":"YulFunctionCall","src":"210:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"203:6:61"},"nodeType":"YulFunctionCall","src":"203:73:61"},"nodeType":"YulIf","src":"200:93:61"},{"nodeType":"YulAssignment","src":"302:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"312:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"302:6:61"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:61","type":""}],"src":"14:309:61"},{"body":{"nodeType":"YulBlock","src":"429:76:61","statements":[{"nodeType":"YulAssignment","src":"439:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"451:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"462:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"447:3:61"},"nodeType":"YulFunctionCall","src":"447:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"439:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"481:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"492:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"474:6:61"},"nodeType":"YulFunctionCall","src":"474:25:61"},"nodeType":"YulExpressionStatement","src":"474:25:61"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"398:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"409:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"420:4:61","type":""}],"src":"328:177:61"},{"body":{"nodeType":"YulBlock","src":"650:723:61","statements":[{"body":{"nodeType":"YulBlock","src":"696:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"705:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"698:6:61"},"nodeType":"YulFunctionCall","src":"698:12:61"},"nodeType":"YulExpressionStatement","src":"698:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"671:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"680:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"667:3:61"},"nodeType":"YulFunctionCall","src":"667:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"692:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"663:3:61"},"nodeType":"YulFunctionCall","src":"663:32:61"},"nodeType":"YulIf","src":"660:52:61"},{"nodeType":"YulVariableDeclaration","src":"721:37:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"748:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"735:12:61"},"nodeType":"YulFunctionCall","src":"735:23:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"725:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"767:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"777:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"771:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"822:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"831:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"824:6:61"},"nodeType":"YulFunctionCall","src":"824:12:61"},"nodeType":"YulExpressionStatement","src":"824:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"810:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"807:2:61"},"nodeType":"YulFunctionCall","src":"807:14:61"},"nodeType":"YulIf","src":"804:34:61"},{"nodeType":"YulVariableDeclaration","src":"847:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"861:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"872:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"857:3:61"},"nodeType":"YulFunctionCall","src":"857:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"851:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"918:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"927:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"930:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"920:6:61"},"nodeType":"YulFunctionCall","src":"920:12:61"},"nodeType":"YulExpressionStatement","src":"920:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"899:7:61"},{"name":"_2","nodeType":"YulIdentifier","src":"908:2:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"895:3:61"},"nodeType":"YulFunctionCall","src":"895:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"913:3:61","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"891:3:61"},"nodeType":"YulFunctionCall","src":"891:26:61"},"nodeType":"YulIf","src":"888:46:61"},{"nodeType":"YulAssignment","src":"943:12:61","value":{"name":"_2","nodeType":"YulIdentifier","src":"953:2:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"943:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"964:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"997:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1008:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"993:3:61"},"nodeType":"YulFunctionCall","src":"993:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"980:12:61"},"nodeType":"YulFunctionCall","src":"980:32:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"968:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1041:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1050:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1053:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1043:6:61"},"nodeType":"YulFunctionCall","src":"1043:12:61"},"nodeType":"YulExpressionStatement","src":"1043:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1027:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1037:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1024:2:61"},"nodeType":"YulFunctionCall","src":"1024:16:61"},"nodeType":"YulIf","src":"1021:36:61"},{"nodeType":"YulVariableDeclaration","src":"1066:34:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1080:9:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1091:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1076:3:61"},"nodeType":"YulFunctionCall","src":"1076:24:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1070:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1148:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1157:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1160:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1150:6:61"},"nodeType":"YulFunctionCall","src":"1150:12:61"},"nodeType":"YulExpressionStatement","src":"1150:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1127:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1131:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1123:3:61"},"nodeType":"YulFunctionCall","src":"1123:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1138:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1119:3:61"},"nodeType":"YulFunctionCall","src":"1119:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1112:6:61"},"nodeType":"YulFunctionCall","src":"1112:35:61"},"nodeType":"YulIf","src":"1109:55:61"},{"nodeType":"YulVariableDeclaration","src":"1173:30:61","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1200:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1187:12:61"},"nodeType":"YulFunctionCall","src":"1187:16:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1177:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1230:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1239:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1242:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1232:6:61"},"nodeType":"YulFunctionCall","src":"1232:12:61"},"nodeType":"YulExpressionStatement","src":"1232:12:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1218:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1226:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1215:2:61"},"nodeType":"YulFunctionCall","src":"1215:14:61"},"nodeType":"YulIf","src":"1212:34:61"},{"body":{"nodeType":"YulBlock","src":"1296:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1305:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1308:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1298:6:61"},"nodeType":"YulFunctionCall","src":"1298:12:61"},"nodeType":"YulExpressionStatement","src":"1298:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1269:2:61"},{"name":"length","nodeType":"YulIdentifier","src":"1273:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1265:3:61"},"nodeType":"YulFunctionCall","src":"1265:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1282:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1261:3:61"},"nodeType":"YulFunctionCall","src":"1261:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1287:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1258:2:61"},"nodeType":"YulFunctionCall","src":"1258:37:61"},"nodeType":"YulIf","src":"1255:57:61"},{"nodeType":"YulAssignment","src":"1321:21:61","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1335:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1339:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1331:3:61"},"nodeType":"YulFunctionCall","src":"1331:11:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1321:6:61"}]},{"nodeType":"YulAssignment","src":"1351:16:61","value":{"name":"length","nodeType":"YulIdentifier","src":"1361:6:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1351:6:61"}]}]},"name":"abi_decode_tuple_t_struct$_ForwardRequest_$5000_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"600:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"611:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"623:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"631:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"639:6:61","type":""}],"src":"510:863:61"},{"body":{"nodeType":"YulBlock","src":"1431:205:61","statements":[{"nodeType":"YulVariableDeclaration","src":"1441:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1450:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1445:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1510:63:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1535:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"1540:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1531:3:61"},"nodeType":"YulFunctionCall","src":"1531:11:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1554:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"1559:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1550:3:61"},"nodeType":"YulFunctionCall","src":"1550:11:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1544:5:61"},"nodeType":"YulFunctionCall","src":"1544:18:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1524:6:61"},"nodeType":"YulFunctionCall","src":"1524:39:61"},"nodeType":"YulExpressionStatement","src":"1524:39:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1471:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"1474:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1468:2:61"},"nodeType":"YulFunctionCall","src":"1468:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1482:19:61","statements":[{"nodeType":"YulAssignment","src":"1484:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1493:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"1496:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1489:3:61"},"nodeType":"YulFunctionCall","src":"1489:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1484:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"1464:3:61","statements":[]},"src":"1460:113:61"},{"body":{"nodeType":"YulBlock","src":"1599:31:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1612:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"1617:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1608:3:61"},"nodeType":"YulFunctionCall","src":"1608:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"1626:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1601:6:61"},"nodeType":"YulFunctionCall","src":"1601:27:61"},"nodeType":"YulExpressionStatement","src":"1601:27:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1588:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"1591:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1585:2:61"},"nodeType":"YulFunctionCall","src":"1585:13:61"},"nodeType":"YulIf","src":"1582:48:61"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1409:3:61","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1414:3:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"1419:6:61","type":""}],"src":"1378:258:61"},{"body":{"nodeType":"YulBlock","src":"1690:267:61","statements":[{"nodeType":"YulVariableDeclaration","src":"1700:26:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1720:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1714:5:61"},"nodeType":"YulFunctionCall","src":"1714:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1704:6:61","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1742:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"1747:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1735:6:61"},"nodeType":"YulFunctionCall","src":"1735:19:61"},"nodeType":"YulExpressionStatement","src":"1735:19:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1789:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"1796:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1785:3:61"},"nodeType":"YulFunctionCall","src":"1785:16:61"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1807:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"1812:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1803:3:61"},"nodeType":"YulFunctionCall","src":"1803:14:61"},{"name":"length","nodeType":"YulIdentifier","src":"1819:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1763:21:61"},"nodeType":"YulFunctionCall","src":"1763:63:61"},"nodeType":"YulExpressionStatement","src":"1763:63:61"},{"nodeType":"YulAssignment","src":"1835:116:61","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1850:3:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1863:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1871:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1859:3:61"},"nodeType":"YulFunctionCall","src":"1859:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1876:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1855:3:61"},"nodeType":"YulFunctionCall","src":"1855:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1846:3:61"},"nodeType":"YulFunctionCall","src":"1846:98:61"},{"kind":"number","nodeType":"YulLiteral","src":"1946:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1842:3:61"},"nodeType":"YulFunctionCall","src":"1842:109:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1835:3:61"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1667:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1674:3:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1682:3:61","type":""}],"src":"1641:316:61"},{"body":{"nodeType":"YulBlock","src":"2103:157:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2120:9:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2145:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2138:6:61"},"nodeType":"YulFunctionCall","src":"2138:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2131:6:61"},"nodeType":"YulFunctionCall","src":"2131:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2113:6:61"},"nodeType":"YulFunctionCall","src":"2113:41:61"},"nodeType":"YulExpressionStatement","src":"2113:41:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2174:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2185:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2170:3:61"},"nodeType":"YulFunctionCall","src":"2170:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2190:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2163:6:61"},"nodeType":"YulFunctionCall","src":"2163:30:61"},"nodeType":"YulExpressionStatement","src":"2163:30:61"},{"nodeType":"YulAssignment","src":"2202:52:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2227:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2239:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2250:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2235:3:61"},"nodeType":"YulFunctionCall","src":"2235:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2210:16:61"},"nodeType":"YulFunctionCall","src":"2210:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2202:4:61"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2064:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2075:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2083:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2094:4:61","type":""}],"src":"1962:298:61"},{"body":{"nodeType":"YulBlock","src":"2622:976:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2639:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2654:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2662:66:61","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2650:3:61"},"nodeType":"YulFunctionCall","src":"2650:79:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2632:6:61"},"nodeType":"YulFunctionCall","src":"2632:98:61"},"nodeType":"YulExpressionStatement","src":"2632:98:61"},{"nodeType":"YulVariableDeclaration","src":"2739:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2749:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2743:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2771:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2782:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2767:3:61"},"nodeType":"YulFunctionCall","src":"2767:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2787:3:61","type":"","value":"224"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2760:6:61"},"nodeType":"YulFunctionCall","src":"2760:31:61"},"nodeType":"YulExpressionStatement","src":"2760:31:61"},{"nodeType":"YulVariableDeclaration","src":"2800:59:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2831:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2843:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2854:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2839:3:61"},"nodeType":"YulFunctionCall","src":"2839:19:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2814:16:61"},"nodeType":"YulFunctionCall","src":"2814:45:61"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"2804:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2879:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2890:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2875:3:61"},"nodeType":"YulFunctionCall","src":"2875:18:61"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"2899:6:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"2907:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2895:3:61"},"nodeType":"YulFunctionCall","src":"2895:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2868:6:61"},"nodeType":"YulFunctionCall","src":"2868:50:61"},"nodeType":"YulExpressionStatement","src":"2868:50:61"},{"nodeType":"YulVariableDeclaration","src":"2927:46:61","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2958:6:61"},{"name":"tail_1","nodeType":"YulIdentifier","src":"2966:6:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2941:16:61"},"nodeType":"YulFunctionCall","src":"2941:32:61"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"2931:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2993:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3004:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2989:3:61"},"nodeType":"YulFunctionCall","src":"2989:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"3009:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2982:6:61"},"nodeType":"YulFunctionCall","src":"2982:34:61"},"nodeType":"YulExpressionStatement","src":"2982:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3036:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3047:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3032:3:61"},"nodeType":"YulFunctionCall","src":"3032:19:61"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3057:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3065:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3053:3:61"},"nodeType":"YulFunctionCall","src":"3053:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3025:6:61"},"nodeType":"YulFunctionCall","src":"3025:84:61"},"nodeType":"YulExpressionStatement","src":"3025:84:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3129:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3140:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3125:3:61"},"nodeType":"YulFunctionCall","src":"3125:19:61"},{"name":"value5","nodeType":"YulIdentifier","src":"3146:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3118:6:61"},"nodeType":"YulFunctionCall","src":"3118:35:61"},"nodeType":"YulExpressionStatement","src":"3118:35:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3173:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3184:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3169:3:61"},"nodeType":"YulFunctionCall","src":"3169:19:61"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"3194:6:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"3202:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3190:3:61"},"nodeType":"YulFunctionCall","src":"3190:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3162:6:61"},"nodeType":"YulFunctionCall","src":"3162:51:61"},"nodeType":"YulExpressionStatement","src":"3162:51:61"},{"nodeType":"YulVariableDeclaration","src":"3222:17:61","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"3233:6:61"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"3226:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3248:27:61","value":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"3268:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3262:5:61"},"nodeType":"YulFunctionCall","src":"3262:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3252:6:61","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"3291:6:61"},{"name":"length","nodeType":"YulIdentifier","src":"3299:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3284:6:61"},"nodeType":"YulFunctionCall","src":"3284:22:61"},"nodeType":"YulExpressionStatement","src":"3284:22:61"},{"nodeType":"YulAssignment","src":"3315:22:61","value":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"3326:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3334:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3322:3:61"},"nodeType":"YulFunctionCall","src":"3322:15:61"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3315:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"3346:29:61","value":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"3364:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3372:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3360:3:61"},"nodeType":"YulFunctionCall","src":"3360:15:61"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3350:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3384:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3393:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3388:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3452:120:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3473:3:61"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3484:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3478:5:61"},"nodeType":"YulFunctionCall","src":"3478:13:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3466:6:61"},"nodeType":"YulFunctionCall","src":"3466:26:61"},"nodeType":"YulExpressionStatement","src":"3466:26:61"},{"nodeType":"YulAssignment","src":"3505:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3516:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3521:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3512:3:61"},"nodeType":"YulFunctionCall","src":"3512:12:61"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3505:3:61"}]},{"nodeType":"YulAssignment","src":"3537:25:61","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3551:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3559:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3547:3:61"},"nodeType":"YulFunctionCall","src":"3547:15:61"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3537:6:61"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3414:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3417:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3411:2:61"},"nodeType":"YulFunctionCall","src":"3411:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3425:18:61","statements":[{"nodeType":"YulAssignment","src":"3427:14:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3436:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3439:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3432:3:61"},"nodeType":"YulFunctionCall","src":"3432:9:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3427:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3407:3:61","statements":[]},"src":"3403:169:61"},{"nodeType":"YulAssignment","src":"3581:11:61","value":{"name":"pos","nodeType":"YulIdentifier","src":"3589:3:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3581:4:61"}]}]},"name":"abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2543:9:61","type":""},{"name":"value6","nodeType":"YulTypedName","src":"2554:6:61","type":""},{"name":"value5","nodeType":"YulTypedName","src":"2562:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2570:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2578:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2586:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2594:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2602:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2613:4:61","type":""}],"src":"2265:1333:61"},{"body":{"nodeType":"YulBlock","src":"3698:92:61","statements":[{"nodeType":"YulAssignment","src":"3708:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3720:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3731:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3716:3:61"},"nodeType":"YulFunctionCall","src":"3716:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3708:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3750:9:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3775:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3768:6:61"},"nodeType":"YulFunctionCall","src":"3768:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3761:6:61"},"nodeType":"YulFunctionCall","src":"3761:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3743:6:61"},"nodeType":"YulFunctionCall","src":"3743:41:61"},"nodeType":"YulExpressionStatement","src":"3743:41:61"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3667:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3678:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3689:4:61","type":""}],"src":"3603:187:61"},{"body":{"nodeType":"YulBlock","src":"3969:240:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3986:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3997:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3979:6:61"},"nodeType":"YulFunctionCall","src":"3979:21:61"},"nodeType":"YulExpressionStatement","src":"3979:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4020:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4031:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4016:3:61"},"nodeType":"YulFunctionCall","src":"4016:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"4036:2:61","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4009:6:61"},"nodeType":"YulFunctionCall","src":"4009:30:61"},"nodeType":"YulExpressionStatement","src":"4009:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4059:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4070:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4055:3:61"},"nodeType":"YulFunctionCall","src":"4055:18:61"},{"hexValue":"4d696e696d616c466f727761726465723a207369676e617475726520646f6573","kind":"string","nodeType":"YulLiteral","src":"4075:34:61","type":"","value":"MinimalForwarder: signature does"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4048:6:61"},"nodeType":"YulFunctionCall","src":"4048:62:61"},"nodeType":"YulExpressionStatement","src":"4048:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4130:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4141:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4126:3:61"},"nodeType":"YulFunctionCall","src":"4126:18:61"},{"hexValue":"206e6f74206d617463682072657175657374","kind":"string","nodeType":"YulLiteral","src":"4146:20:61","type":"","value":" not match request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4119:6:61"},"nodeType":"YulFunctionCall","src":"4119:48:61"},"nodeType":"YulExpressionStatement","src":"4119:48:61"},{"nodeType":"YulAssignment","src":"4176:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4188:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4199:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4184:3:61"},"nodeType":"YulFunctionCall","src":"4184:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4176:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3946:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3960:4:61","type":""}],"src":"3795:414:61"},{"body":{"nodeType":"YulBlock","src":"4262:234:61","statements":[{"body":{"nodeType":"YulBlock","src":"4297:168:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4318:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4321:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:61"},"nodeType":"YulFunctionCall","src":"4311:88:61"},"nodeType":"YulExpressionStatement","src":"4311:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4419:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4422:4:61","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4412:6:61"},"nodeType":"YulFunctionCall","src":"4412:15:61"},"nodeType":"YulExpressionStatement","src":"4412:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4447:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4450:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4440:6:61"},"nodeType":"YulFunctionCall","src":"4440:15:61"},"nodeType":"YulExpressionStatement","src":"4440:15:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4278:1:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4285:1:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4281:3:61"},"nodeType":"YulFunctionCall","src":"4281:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4275:2:61"},"nodeType":"YulFunctionCall","src":"4275:13:61"},"nodeType":"YulIf","src":"4272:193:61"},{"nodeType":"YulAssignment","src":"4474:16:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4485:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"4488:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:61"},"nodeType":"YulFunctionCall","src":"4481:9:61"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"4474:3:61"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4245:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"4248:1:61","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"4254:3:61","type":""}],"src":"4214:282:61"},{"body":{"nodeType":"YulBlock","src":"4595:486:61","statements":[{"nodeType":"YulVariableDeclaration","src":"4605:51:61","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"4644:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4631:12:61"},"nodeType":"YulFunctionCall","src":"4631:25:61"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"4609:18:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4804:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4813:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4816:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4806:6:61"},"nodeType":"YulFunctionCall","src":"4806:12:61"},"nodeType":"YulExpressionStatement","src":"4806:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"4679:18:61"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4707:12:61"},"nodeType":"YulFunctionCall","src":"4707:14:61"},{"name":"base_ref","nodeType":"YulIdentifier","src":"4723:8:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4703:3:61"},"nodeType":"YulFunctionCall","src":"4703:29:61"},{"kind":"number","nodeType":"YulLiteral","src":"4734:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4699:3:61"},"nodeType":"YulFunctionCall","src":"4699:102:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4675:3:61"},"nodeType":"YulFunctionCall","src":"4675:127:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4668:6:61"},"nodeType":"YulFunctionCall","src":"4668:135:61"},"nodeType":"YulIf","src":"4665:155:61"},{"nodeType":"YulVariableDeclaration","src":"4829:47:61","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"4847:8:61"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"4857:18:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4843:3:61"},"nodeType":"YulFunctionCall","src":"4843:33:61"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"4833:6:61","type":""}]},{"nodeType":"YulAssignment","src":"4885:30:61","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"4908:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4895:12:61"},"nodeType":"YulFunctionCall","src":"4895:20:61"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4885:6:61"}]},{"body":{"nodeType":"YulBlock","src":"4958:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4967:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4970:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4960:6:61"},"nodeType":"YulFunctionCall","src":"4960:12:61"},"nodeType":"YulExpressionStatement","src":"4960:12:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4930:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4938:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4927:2:61"},"nodeType":"YulFunctionCall","src":"4927:30:61"},"nodeType":"YulIf","src":"4924:50:61"},{"nodeType":"YulAssignment","src":"4983:25:61","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"4995:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5003:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4991:3:61"},"nodeType":"YulFunctionCall","src":"4991:17:61"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"4983:4:61"}]},{"body":{"nodeType":"YulBlock","src":"5059:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5068:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5071:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5061:6:61"},"nodeType":"YulFunctionCall","src":"5061:12:61"},"nodeType":"YulExpressionStatement","src":"5061:12:61"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"5024:4:61"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5034:12:61"},"nodeType":"YulFunctionCall","src":"5034:14:61"},{"name":"length","nodeType":"YulIdentifier","src":"5050:6:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5030:3:61"},"nodeType":"YulFunctionCall","src":"5030:27:61"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"5020:3:61"},"nodeType":"YulFunctionCall","src":"5020:38:61"},"nodeType":"YulIf","src":"5017:58:61"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"4552:8:61","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"4562:11:61","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"4578:4:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"4584:6:61","type":""}],"src":"4501:580:61"},{"body":{"nodeType":"YulBlock","src":"5261:220:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5284:3:61"},{"name":"value0","nodeType":"YulIdentifier","src":"5289:6:61"},{"name":"value1","nodeType":"YulIdentifier","src":"5297:6:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5271:12:61"},"nodeType":"YulFunctionCall","src":"5271:33:61"},"nodeType":"YulExpressionStatement","src":"5271:33:61"},{"nodeType":"YulVariableDeclaration","src":"5313:26:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5327:3:61"},{"name":"value1","nodeType":"YulIdentifier","src":"5332:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5323:3:61"},"nodeType":"YulFunctionCall","src":"5323:16:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5317:2:61","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5355:2:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5367:2:61","type":"","value":"96"},{"name":"value2","nodeType":"YulIdentifier","src":"5371:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5363:3:61"},"nodeType":"YulFunctionCall","src":"5363:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"5380:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5359:3:61"},"nodeType":"YulFunctionCall","src":"5359:88:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5348:6:61"},"nodeType":"YulFunctionCall","src":"5348:100:61"},"nodeType":"YulExpressionStatement","src":"5348:100:61"},{"nodeType":"YulAssignment","src":"5457:18:61","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5468:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"5472:2:61","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5464:3:61"},"nodeType":"YulFunctionCall","src":"5464:11:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5457:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5221:3:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5226:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5234:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5242:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5253:3:61","type":""}],"src":"5086:395:61"},{"body":{"nodeType":"YulBlock","src":"5623:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"5633:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5653:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5647:5:61"},"nodeType":"YulFunctionCall","src":"5647:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5637:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5695:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5703:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5691:3:61"},"nodeType":"YulFunctionCall","src":"5691:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"5710:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"5715:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5669:21:61"},"nodeType":"YulFunctionCall","src":"5669:53:61"},"nodeType":"YulExpressionStatement","src":"5669:53:61"},{"nodeType":"YulAssignment","src":"5731:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5742:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"5747:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:61"},"nodeType":"YulFunctionCall","src":"5738:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5731:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5599:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5604:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5615:3:61","type":""}],"src":"5486:274:61"},{"body":{"nodeType":"YulBlock","src":"5939:179:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5956:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5967:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5949:6:61"},"nodeType":"YulFunctionCall","src":"5949:21:61"},"nodeType":"YulExpressionStatement","src":"5949:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5990:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6001:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5986:3:61"},"nodeType":"YulFunctionCall","src":"5986:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"6006:2:61","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5979:6:61"},"nodeType":"YulFunctionCall","src":"5979:30:61"},"nodeType":"YulExpressionStatement","src":"5979:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6029:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6040:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6025:3:61"},"nodeType":"YulFunctionCall","src":"6025:18:61"},{"hexValue":"5472616e73616374696f6e2072657665727465642073696c656e746c79","kind":"string","nodeType":"YulLiteral","src":"6045:31:61","type":"","value":"Transaction reverted silently"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6018:6:61"},"nodeType":"YulFunctionCall","src":"6018:59:61"},"nodeType":"YulExpressionStatement","src":"6018:59:61"},{"nodeType":"YulAssignment","src":"6086:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6098:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6109:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6094:3:61"},"nodeType":"YulFunctionCall","src":"6094:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6086:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0b1e7612ebe87924453e5d4581b9067879655587bae8a2dfee438433699b890__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5916:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5930:4:61","type":""}],"src":"5765:353:61"},{"body":{"nodeType":"YulBlock","src":"6155:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6172:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6175:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6165:6:61"},"nodeType":"YulFunctionCall","src":"6165:88:61"},"nodeType":"YulExpressionStatement","src":"6165:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6269:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6272:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6262:6:61"},"nodeType":"YulFunctionCall","src":"6262:15:61"},"nodeType":"YulExpressionStatement","src":"6262:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6293:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6296:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6286:6:61"},"nodeType":"YulFunctionCall","src":"6286:15:61"},"nodeType":"YulExpressionStatement","src":"6286:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"6123:184:61"},{"body":{"nodeType":"YulBlock","src":"6403:852:61","statements":[{"body":{"nodeType":"YulBlock","src":"6449:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6458:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6461:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6451:6:61"},"nodeType":"YulFunctionCall","src":"6451:12:61"},"nodeType":"YulExpressionStatement","src":"6451:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6424:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"6433:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6420:3:61"},"nodeType":"YulFunctionCall","src":"6420:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"6445:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6416:3:61"},"nodeType":"YulFunctionCall","src":"6416:32:61"},"nodeType":"YulIf","src":"6413:52:61"},{"nodeType":"YulVariableDeclaration","src":"6474:30:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6494:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6488:5:61"},"nodeType":"YulFunctionCall","src":"6488:16:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6478:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6513:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"6523:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6517:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"6568:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6577:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6580:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6570:6:61"},"nodeType":"YulFunctionCall","src":"6570:12:61"},"nodeType":"YulExpressionStatement","src":"6570:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6556:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"6564:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6553:2:61"},"nodeType":"YulFunctionCall","src":"6553:14:61"},"nodeType":"YulIf","src":"6550:34:61"},{"nodeType":"YulVariableDeclaration","src":"6593:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6607:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"6618:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6603:3:61"},"nodeType":"YulFunctionCall","src":"6603:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6597:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"6673:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6682:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6685:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6675:6:61"},"nodeType":"YulFunctionCall","src":"6675:12:61"},"nodeType":"YulExpressionStatement","src":"6675:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6652:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"6656:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6648:3:61"},"nodeType":"YulFunctionCall","src":"6648:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6663:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6644:3:61"},"nodeType":"YulFunctionCall","src":"6644:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6637:6:61"},"nodeType":"YulFunctionCall","src":"6637:35:61"},"nodeType":"YulIf","src":"6634:55:61"},{"nodeType":"YulVariableDeclaration","src":"6698:19:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6714:2:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6708:5:61"},"nodeType":"YulFunctionCall","src":"6708:9:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"6702:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"6740:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"6742:16:61"},"nodeType":"YulFunctionCall","src":"6742:18:61"},"nodeType":"YulExpressionStatement","src":"6742:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6732:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"6736:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6729:2:61"},"nodeType":"YulFunctionCall","src":"6729:10:61"},"nodeType":"YulIf","src":"6726:36:61"},{"nodeType":"YulVariableDeclaration","src":"6771:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"6781:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"6775:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6856:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6876:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6870:5:61"},"nodeType":"YulFunctionCall","src":"6870:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"6860:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6888:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"6910:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6934:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"6938:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6930:3:61"},"nodeType":"YulFunctionCall","src":"6930:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"6945:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6926:3:61"},"nodeType":"YulFunctionCall","src":"6926:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"6950:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6922:3:61"},"nodeType":"YulFunctionCall","src":"6922:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"6955:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6918:3:61"},"nodeType":"YulFunctionCall","src":"6918:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6906:3:61"},"nodeType":"YulFunctionCall","src":"6906:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"6892:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"7018:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"7020:16:61"},"nodeType":"YulFunctionCall","src":"7020:18:61"},"nodeType":"YulExpressionStatement","src":"7020:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"6977:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"6989:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6974:2:61"},"nodeType":"YulFunctionCall","src":"6974:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"6997:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"7009:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6994:2:61"},"nodeType":"YulFunctionCall","src":"6994:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6971:2:61"},"nodeType":"YulFunctionCall","src":"6971:46:61"},"nodeType":"YulIf","src":"6968:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7056:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"7060:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7049:6:61"},"nodeType":"YulFunctionCall","src":"7049:22:61"},"nodeType":"YulExpressionStatement","src":"7049:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7087:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"7095:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7080:6:61"},"nodeType":"YulFunctionCall","src":"7080:18:61"},"nodeType":"YulExpressionStatement","src":"7080:18:61"},{"body":{"nodeType":"YulBlock","src":"7144:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7153:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7156:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7146:6:61"},"nodeType":"YulFunctionCall","src":"7146:12:61"},"nodeType":"YulExpressionStatement","src":"7146:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7121:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"7125:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7117:3:61"},"nodeType":"YulFunctionCall","src":"7117:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"7130:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7113:3:61"},"nodeType":"YulFunctionCall","src":"7113:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7135:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7110:2:61"},"nodeType":"YulFunctionCall","src":"7110:33:61"},"nodeType":"YulIf","src":"7107:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7195:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"7199:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7191:3:61"},"nodeType":"YulFunctionCall","src":"7191:11:61"},{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7208:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"7216:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7204:3:61"},"nodeType":"YulFunctionCall","src":"7204:15:61"},{"name":"_3","nodeType":"YulIdentifier","src":"7221:2:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7169:21:61"},"nodeType":"YulFunctionCall","src":"7169:55:61"},"nodeType":"YulExpressionStatement","src":"7169:55:61"},{"nodeType":"YulAssignment","src":"7233:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"7243:6:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7233:6:61"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6369:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6380:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6392:6:61","type":""}],"src":"6312:943:61"},{"body":{"nodeType":"YulBlock","src":"7381:98:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7398:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7409:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7391:6:61"},"nodeType":"YulFunctionCall","src":"7391:21:61"},"nodeType":"YulExpressionStatement","src":"7391:21:61"},{"nodeType":"YulAssignment","src":"7421:52:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7446:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7458:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7469:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7454:3:61"},"nodeType":"YulFunctionCall","src":"7454:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7429:16:61"},"nodeType":"YulFunctionCall","src":"7429:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7421:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7350:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7361:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7372:4:61","type":""}],"src":"7260:219:61"},{"body":{"nodeType":"YulBlock","src":"7530:228:61","statements":[{"body":{"nodeType":"YulBlock","src":"7561:168:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7582:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7585:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7575:6:61"},"nodeType":"YulFunctionCall","src":"7575:88:61"},"nodeType":"YulExpressionStatement","src":"7575:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7683:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7686:4:61","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7676:6:61"},"nodeType":"YulFunctionCall","src":"7676:15:61"},"nodeType":"YulExpressionStatement","src":"7676:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7711:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7714:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7704:6:61"},"nodeType":"YulFunctionCall","src":"7704:15:61"},"nodeType":"YulExpressionStatement","src":"7704:15:61"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7550:1:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7543:6:61"},"nodeType":"YulFunctionCall","src":"7543:9:61"},"nodeType":"YulIf","src":"7540:189:61"},{"nodeType":"YulAssignment","src":"7738:14:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7747:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"7750:1:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7743:3:61"},"nodeType":"YulFunctionCall","src":"7743:9:61"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7738:1:61"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7515:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"7518:1:61","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"7524:1:61","type":""}],"src":"7484:274:61"},{"body":{"nodeType":"YulBlock","src":"7795:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7812:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7815:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7805:6:61"},"nodeType":"YulFunctionCall","src":"7805:88:61"},"nodeType":"YulExpressionStatement","src":"7805:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7909:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7912:4:61","type":"","value":"0x01"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7902:6:61"},"nodeType":"YulFunctionCall","src":"7902:15:61"},"nodeType":"YulExpressionStatement","src":"7902:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7933:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7936:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7926:6:61"},"nodeType":"YulFunctionCall","src":"7926:15:61"},"nodeType":"YulExpressionStatement","src":"7926:15:61"}]},"name":"panic_error_0x01","nodeType":"YulFunctionDefinition","src":"7763:184:61"},{"body":{"nodeType":"YulBlock","src":"8099:124:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8122:3:61"},{"name":"value0","nodeType":"YulIdentifier","src":"8127:6:61"},{"name":"value1","nodeType":"YulIdentifier","src":"8135:6:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"8109:12:61"},"nodeType":"YulFunctionCall","src":"8109:33:61"},"nodeType":"YulExpressionStatement","src":"8109:33:61"},{"nodeType":"YulVariableDeclaration","src":"8151:26:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8165:3:61"},{"name":"value1","nodeType":"YulIdentifier","src":"8170:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8161:3:61"},"nodeType":"YulFunctionCall","src":"8161:16:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8155:2:61","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8193:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"8197:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8186:6:61"},"nodeType":"YulFunctionCall","src":"8186:13:61"},"nodeType":"YulExpressionStatement","src":"8186:13:61"},{"nodeType":"YulAssignment","src":"8208:9:61","value":{"name":"_1","nodeType":"YulIdentifier","src":"8215:2:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8208:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"8067:3:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8072:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8080:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8091:3:61","type":""}],"src":"7952:271:61"},{"body":{"nodeType":"YulBlock","src":"8497:417:61","statements":[{"nodeType":"YulAssignment","src":"8507:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8519:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8530:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8515:3:61"},"nodeType":"YulFunctionCall","src":"8515:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8507:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8550:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"8561:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8543:6:61"},"nodeType":"YulFunctionCall","src":"8543:25:61"},"nodeType":"YulExpressionStatement","src":"8543:25:61"},{"nodeType":"YulVariableDeclaration","src":"8577:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"8587:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8581:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8649:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8660:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8645:3:61"},"nodeType":"YulFunctionCall","src":"8645:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8669:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"8677:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8665:3:61"},"nodeType":"YulFunctionCall","src":"8665:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8638:6:61"},"nodeType":"YulFunctionCall","src":"8638:43:61"},"nodeType":"YulExpressionStatement","src":"8638:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8701:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8712:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8697:3:61"},"nodeType":"YulFunctionCall","src":"8697:18:61"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8721:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"8729:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8717:3:61"},"nodeType":"YulFunctionCall","src":"8717:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8690:6:61"},"nodeType":"YulFunctionCall","src":"8690:43:61"},"nodeType":"YulExpressionStatement","src":"8690:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8753:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8764:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8749:3:61"},"nodeType":"YulFunctionCall","src":"8749:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"8769:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8742:6:61"},"nodeType":"YulFunctionCall","src":"8742:34:61"},"nodeType":"YulExpressionStatement","src":"8742:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8796:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8807:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8792:3:61"},"nodeType":"YulFunctionCall","src":"8792:19:61"},{"name":"value4","nodeType":"YulIdentifier","src":"8813:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8785:6:61"},"nodeType":"YulFunctionCall","src":"8785:35:61"},"nodeType":"YulExpressionStatement","src":"8785:35:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8840:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8851:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8836:3:61"},"nodeType":"YulFunctionCall","src":"8836:19:61"},{"name":"value5","nodeType":"YulIdentifier","src":"8857:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8829:6:61"},"nodeType":"YulFunctionCall","src":"8829:35:61"},"nodeType":"YulExpressionStatement","src":"8829:35:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8884:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8895:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8880:3:61"},"nodeType":"YulFunctionCall","src":"8880:19:61"},{"name":"value6","nodeType":"YulIdentifier","src":"8901:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8873:6:61"},"nodeType":"YulFunctionCall","src":"8873:35:61"},"nodeType":"YulExpressionStatement","src":"8873:35:61"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8418:9:61","type":""},{"name":"value6","nodeType":"YulTypedName","src":"8429:6:61","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8437:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8445:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8453:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8461:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8469:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8477:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8488:4:61","type":""}],"src":"8228:686:61"},{"body":{"nodeType":"YulBlock","src":"8974:382:61","statements":[{"nodeType":"YulAssignment","src":"8984:22:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8998:1:61","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"9001:4:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8994:3:61"},"nodeType":"YulFunctionCall","src":"8994:12:61"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8984:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"9015:38:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9045:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"9051:1:61","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9041:3:61"},"nodeType":"YulFunctionCall","src":"9041:12:61"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"9019:18:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9092:31:61","statements":[{"nodeType":"YulAssignment","src":"9094:27:61","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9108:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"9116:4:61","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9104:3:61"},"nodeType":"YulFunctionCall","src":"9104:17:61"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"9094:6:61"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"9072:18:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9065:6:61"},"nodeType":"YulFunctionCall","src":"9065:26:61"},"nodeType":"YulIf","src":"9062:61:61"},{"body":{"nodeType":"YulBlock","src":"9182:168:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9203:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9206:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9196:6:61"},"nodeType":"YulFunctionCall","src":"9196:88:61"},"nodeType":"YulExpressionStatement","src":"9196:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9304:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9307:4:61","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9297:6:61"},"nodeType":"YulFunctionCall","src":"9297:15:61"},"nodeType":"YulExpressionStatement","src":"9297:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9332:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9335:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9325:6:61"},"nodeType":"YulFunctionCall","src":"9325:15:61"},"nodeType":"YulExpressionStatement","src":"9325:15:61"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"9138:18:61"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9161:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"9169:2:61","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9158:2:61"},"nodeType":"YulFunctionCall","src":"9158:14:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9135:2:61"},"nodeType":"YulFunctionCall","src":"9135:38:61"},"nodeType":"YulIf","src":"9132:218:61"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"8954:4:61","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"8963:6:61","type":""}],"src":"8919:437:61"},{"body":{"nodeType":"YulBlock","src":"9417:65:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9434:1:61","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"9437:3:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9427:6:61"},"nodeType":"YulFunctionCall","src":"9427:14:61"},"nodeType":"YulExpressionStatement","src":"9427:14:61"},{"nodeType":"YulAssignment","src":"9450:26:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9468:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9471:4:61","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9458:9:61"},"nodeType":"YulFunctionCall","src":"9458:18:61"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"9450:4:61"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"9400:3:61","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"9408:4:61","type":""}],"src":"9361:121:61"},{"body":{"nodeType":"YulBlock","src":"9568:464:61","statements":[{"body":{"nodeType":"YulBlock","src":"9601:425:61","statements":[{"nodeType":"YulVariableDeclaration","src":"9615:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9625:1:61","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9619:2:61","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9646:2:61"},{"name":"array","nodeType":"YulIdentifier","src":"9650:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9639:6:61"},"nodeType":"YulFunctionCall","src":"9639:17:61"},"nodeType":"YulExpressionStatement","src":"9639:17:61"},{"nodeType":"YulVariableDeclaration","src":"9669:31:61","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9691:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"9695:4:61","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9681:9:61"},"nodeType":"YulFunctionCall","src":"9681:19:61"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"9673:4:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9713:57:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9736:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9746:1:61","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"9753:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"9765:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9749:3:61"},"nodeType":"YulFunctionCall","src":"9749:19:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"9742:3:61"},"nodeType":"YulFunctionCall","src":"9742:27:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9732:3:61"},"nodeType":"YulFunctionCall","src":"9732:38:61"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"9717:11:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9807:23:61","statements":[{"nodeType":"YulAssignment","src":"9809:19:61","value":{"name":"data","nodeType":"YulIdentifier","src":"9824:4:61"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"9809:11:61"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"9789:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"9801:4:61","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9786:2:61"},"nodeType":"YulFunctionCall","src":"9786:20:61"},"nodeType":"YulIf","src":"9783:47:61"},{"nodeType":"YulVariableDeclaration","src":"9843:41:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9857:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9867:1:61","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"9874:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"9879:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9870:3:61"},"nodeType":"YulFunctionCall","src":"9870:12:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"9863:3:61"},"nodeType":"YulFunctionCall","src":"9863:20:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9853:3:61"},"nodeType":"YulFunctionCall","src":"9853:31:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9847:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9897:24:61","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"9910:11:61"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"9901:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9995:21:61","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"10004:5:61"},{"name":"_1","nodeType":"YulIdentifier","src":"10011:2:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"9997:6:61"},"nodeType":"YulFunctionCall","src":"9997:17:61"},"nodeType":"YulExpressionStatement","src":"9997:17:61"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"9945:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9952:2:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9942:2:61"},"nodeType":"YulFunctionCall","src":"9942:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9956:26:61","statements":[{"nodeType":"YulAssignment","src":"9958:22:61","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"9971:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"9978:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9967:3:61"},"nodeType":"YulFunctionCall","src":"9967:13:61"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"9958:5:61"}]}]},"pre":{"nodeType":"YulBlock","src":"9938:3:61","statements":[]},"src":"9934:82:61"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"9584:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"9589:2:61","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9581:2:61"},"nodeType":"YulFunctionCall","src":"9581:11:61"},"nodeType":"YulIf","src":"9578:448:61"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"9540:5:61","type":""},{"name":"len","nodeType":"YulTypedName","src":"9547:3:61","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"9552:10:61","type":""}],"src":"9487:545:61"},{"body":{"nodeType":"YulBlock","src":"10122:141:61","statements":[{"nodeType":"YulAssignment","src":"10132:125:61","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10147:4:61"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10165:1:61","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"10168:3:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10161:3:61"},"nodeType":"YulFunctionCall","src":"10161:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"10174:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10157:3:61"},"nodeType":"YulFunctionCall","src":"10157:84:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10153:3:61"},"nodeType":"YulFunctionCall","src":"10153:89:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10143:3:61"},"nodeType":"YulFunctionCall","src":"10143:100:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10249:1:61","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"10252:3:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10245:3:61"},"nodeType":"YulFunctionCall","src":"10245:11:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"10140:2:61"},"nodeType":"YulFunctionCall","src":"10140:117:61"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"10132:4:61"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10099:4:61","type":""},{"name":"len","nodeType":"YulTypedName","src":"10105:3:61","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"10113:4:61","type":""}],"src":"10037:226:61"},{"body":{"nodeType":"YulBlock","src":"10364:1375:61","statements":[{"nodeType":"YulVariableDeclaration","src":"10374:24:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10394:3:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10388:5:61"},"nodeType":"YulFunctionCall","src":"10388:10:61"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"10378:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"10441:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"10443:16:61"},"nodeType":"YulFunctionCall","src":"10443:18:61"},"nodeType":"YulExpressionStatement","src":"10443:18:61"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"10413:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"10421:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10410:2:61"},"nodeType":"YulFunctionCall","src":"10410:30:61"},"nodeType":"YulIf","src":"10407:56:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"10516:4:61"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"10554:4:61"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"10548:5:61"},"nodeType":"YulFunctionCall","src":"10548:11:61"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"10522:25:61"},"nodeType":"YulFunctionCall","src":"10522:38:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"10562:6:61"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"10472:43:61"},"nodeType":"YulFunctionCall","src":"10472:97:61"},"nodeType":"YulExpressionStatement","src":"10472:97:61"},{"nodeType":"YulVariableDeclaration","src":"10578:18:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10595:1:61","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"10582:9:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10605:23:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10624:4:61","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"10609:11:61","type":""}]},{"nodeType":"YulAssignment","src":"10637:24:61","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"10650:11:61"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"10637:9:61"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"10707:775:61","statements":[{"nodeType":"YulVariableDeclaration","src":"10721:94:61","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"10740:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"10748:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10736:3:61"},"nodeType":"YulFunctionCall","src":"10736:79:61"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"10725:7:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10828:49:61","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"10872:4:61"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"10842:29:61"},"nodeType":"YulFunctionCall","src":"10842:35:61"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"10832:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10890:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10899:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10894:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"10977:172:61","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"11002:6:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11020:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"11025:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11016:3:61"},"nodeType":"YulFunctionCall","src":"11016:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11010:5:61"},"nodeType":"YulFunctionCall","src":"11010:26:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"10995:6:61"},"nodeType":"YulFunctionCall","src":"10995:42:61"},"nodeType":"YulExpressionStatement","src":"10995:42:61"},{"nodeType":"YulAssignment","src":"11054:24:61","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"11068:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"11076:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11064:3:61"},"nodeType":"YulFunctionCall","src":"11064:14:61"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"11054:6:61"}]},{"nodeType":"YulAssignment","src":"11095:40:61","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"11112:9:61"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"11123:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11108:3:61"},"nodeType":"YulFunctionCall","src":"11108:27:61"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"11095:9:61"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10924:1:61"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"10927:7:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10921:2:61"},"nodeType":"YulFunctionCall","src":"10921:14:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10936:28:61","statements":[{"nodeType":"YulAssignment","src":"10938:24:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10947:1:61"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"10950:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10943:3:61"},"nodeType":"YulFunctionCall","src":"10943:19:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10938:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"10917:3:61","statements":[]},"src":"10913:236:61"},{"body":{"nodeType":"YulBlock","src":"11197:226:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11215:43:61","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11242:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"11247:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11238:3:61"},"nodeType":"YulFunctionCall","src":"11238:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11232:5:61"},"nodeType":"YulFunctionCall","src":"11232:26:61"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"11219:9:61","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"11282:6:61"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"11294:9:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11321:1:61","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"11324:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11317:3:61"},"nodeType":"YulFunctionCall","src":"11317:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"11333:3:61","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11313:3:61"},"nodeType":"YulFunctionCall","src":"11313:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"11339:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11309:3:61"},"nodeType":"YulFunctionCall","src":"11309:97:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11305:3:61"},"nodeType":"YulFunctionCall","src":"11305:102:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11290:3:61"},"nodeType":"YulFunctionCall","src":"11290:118:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"11275:6:61"},"nodeType":"YulFunctionCall","src":"11275:134:61"},"nodeType":"YulExpressionStatement","src":"11275:134:61"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"11168:7:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"11177:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11165:2:61"},"nodeType":"YulFunctionCall","src":"11165:19:61"},"nodeType":"YulIf","src":"11162:261:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"11443:4:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11457:1:61","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"11460:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11453:3:61"},"nodeType":"YulFunctionCall","src":"11453:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"11469:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11449:3:61"},"nodeType":"YulFunctionCall","src":"11449:22:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"11436:6:61"},"nodeType":"YulFunctionCall","src":"11436:36:61"},"nodeType":"YulExpressionStatement","src":"11436:36:61"}]},"nodeType":"YulCase","src":"10700:782:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10705:1:61","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"11499:234:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11513:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"11526:1:61","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11517:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"11562:67:61","statements":[{"nodeType":"YulAssignment","src":"11580:35:61","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11599:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"11604:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11595:3:61"},"nodeType":"YulFunctionCall","src":"11595:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11589:5:61"},"nodeType":"YulFunctionCall","src":"11589:26:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11580:5:61"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"11543:6:61"},"nodeType":"YulIf","src":"11540:89:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"11649:4:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11708:5:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"11715:6:61"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"11655:52:61"},"nodeType":"YulFunctionCall","src":"11655:67:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"11642:6:61"},"nodeType":"YulFunctionCall","src":"11642:81:61"},"nodeType":"YulExpressionStatement","src":"11642:81:61"}]},"nodeType":"YulCase","src":"11491:242:61","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"10680:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"10688:2:61","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10677:2:61"},"nodeType":"YulFunctionCall","src":"10677:14:61"},"nodeType":"YulSwitch","src":"10670:1063:61"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"10349:4:61","type":""},{"name":"src","nodeType":"YulTypedName","src":"10355:3:61","type":""}],"src":"10268:1471:61"},{"body":{"nodeType":"YulBlock","src":"11838:263:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11848:26:61","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11868:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11862:5:61"},"nodeType":"YulFunctionCall","src":"11862:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11852:6:61","type":""}]},{"nodeType":"YulAssignment","src":"11883:32:61","value":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11902:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"11909:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11898:3:61"},"nodeType":"YulFunctionCall","src":"11898:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11892:5:61"},"nodeType":"YulFunctionCall","src":"11892:23:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11883:5:61"}]},{"body":{"nodeType":"YulBlock","src":"11952:143:61","statements":[{"nodeType":"YulAssignment","src":"11966:119:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11979:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11994:1:61","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12001:4:61","type":"","value":"0x20"},{"name":"length","nodeType":"YulIdentifier","src":"12007:6:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11997:3:61"},"nodeType":"YulFunctionCall","src":"11997:17:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11990:3:61"},"nodeType":"YulFunctionCall","src":"11990:25:61"},{"kind":"number","nodeType":"YulLiteral","src":"12017:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11986:3:61"},"nodeType":"YulFunctionCall","src":"11986:98:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11975:3:61"},"nodeType":"YulFunctionCall","src":"11975:110:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11966:5:61"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11930:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"11938:4:61","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11927:2:61"},"nodeType":"YulFunctionCall","src":"11927:16:61"},"nodeType":"YulIf","src":"11924:171:61"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"11818:5:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"11828:5:61","type":""}],"src":"11744:357:61"},{"body":{"nodeType":"YulBlock","src":"12138:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12155:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12158:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12148:6:61"},"nodeType":"YulFunctionCall","src":"12148:88:61"},"nodeType":"YulExpressionStatement","src":"12148:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12252:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12255:4:61","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12245:6:61"},"nodeType":"YulFunctionCall","src":"12245:15:61"},"nodeType":"YulExpressionStatement","src":"12245:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12276:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12279:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12269:6:61"},"nodeType":"YulFunctionCall","src":"12269:15:61"},"nodeType":"YulExpressionStatement","src":"12269:15:61"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"12106:184:61"},{"body":{"nodeType":"YulBlock","src":"12469:174:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12486:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12497:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12479:6:61"},"nodeType":"YulFunctionCall","src":"12479:21:61"},"nodeType":"YulExpressionStatement","src":"12479:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12520:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12531:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12516:3:61"},"nodeType":"YulFunctionCall","src":"12516:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"12536:2:61","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12509:6:61"},"nodeType":"YulFunctionCall","src":"12509:30:61"},"nodeType":"YulExpressionStatement","src":"12509:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12559:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12570:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12555:3:61"},"nodeType":"YulFunctionCall","src":"12555:18:61"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"12575:26:61","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12548:6:61"},"nodeType":"YulFunctionCall","src":"12548:54:61"},"nodeType":"YulExpressionStatement","src":"12548:54:61"},{"nodeType":"YulAssignment","src":"12611:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12623:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12634:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12619:3:61"},"nodeType":"YulFunctionCall","src":"12619:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12611:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12446:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12460:4:61","type":""}],"src":"12295:348:61"},{"body":{"nodeType":"YulBlock","src":"12822:181:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12839:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12850:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12832:6:61"},"nodeType":"YulFunctionCall","src":"12832:21:61"},"nodeType":"YulExpressionStatement","src":"12832:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12873:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12884:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12869:3:61"},"nodeType":"YulFunctionCall","src":"12869:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"12889:2:61","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12862:6:61"},"nodeType":"YulFunctionCall","src":"12862:30:61"},"nodeType":"YulExpressionStatement","src":"12862:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12912:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12923:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12908:3:61"},"nodeType":"YulFunctionCall","src":"12908:18:61"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nodeType":"YulLiteral","src":"12928:33:61","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12901:6:61"},"nodeType":"YulFunctionCall","src":"12901:61:61"},"nodeType":"YulExpressionStatement","src":"12901:61:61"},{"nodeType":"YulAssignment","src":"12971:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12983:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12994:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12979:3:61"},"nodeType":"YulFunctionCall","src":"12979:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12971:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12799:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12813:4:61","type":""}],"src":"12648:355:61"},{"body":{"nodeType":"YulBlock","src":"13182:224:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13199:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13210:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13192:6:61"},"nodeType":"YulFunctionCall","src":"13192:21:61"},"nodeType":"YulExpressionStatement","src":"13192:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13233:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13244:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13229:3:61"},"nodeType":"YulFunctionCall","src":"13229:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"13249:2:61","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13222:6:61"},"nodeType":"YulFunctionCall","src":"13222:30:61"},"nodeType":"YulExpressionStatement","src":"13222:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13272:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13283:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13268:3:61"},"nodeType":"YulFunctionCall","src":"13268:18:61"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nodeType":"YulLiteral","src":"13288:34:61","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13261:6:61"},"nodeType":"YulFunctionCall","src":"13261:62:61"},"nodeType":"YulExpressionStatement","src":"13261:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13343:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13354:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13339:3:61"},"nodeType":"YulFunctionCall","src":"13339:18:61"},{"hexValue":"7565","kind":"string","nodeType":"YulLiteral","src":"13359:4:61","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13332:6:61"},"nodeType":"YulFunctionCall","src":"13332:32:61"},"nodeType":"YulExpressionStatement","src":"13332:32:61"},{"nodeType":"YulAssignment","src":"13373:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13385:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13396:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13381:3:61"},"nodeType":"YulFunctionCall","src":"13381:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13373:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13159:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13173:4:61","type":""}],"src":"13008:398:61"},{"body":{"nodeType":"YulBlock","src":"13624:299:61","statements":[{"nodeType":"YulAssignment","src":"13634:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13646:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13657:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13642:3:61"},"nodeType":"YulFunctionCall","src":"13642:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13634:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13677:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"13688:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13670:6:61"},"nodeType":"YulFunctionCall","src":"13670:25:61"},"nodeType":"YulExpressionStatement","src":"13670:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13715:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13726:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13711:3:61"},"nodeType":"YulFunctionCall","src":"13711:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"13731:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13704:6:61"},"nodeType":"YulFunctionCall","src":"13704:34:61"},"nodeType":"YulExpressionStatement","src":"13704:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13758:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13769:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13754:3:61"},"nodeType":"YulFunctionCall","src":"13754:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"13774:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13747:6:61"},"nodeType":"YulFunctionCall","src":"13747:34:61"},"nodeType":"YulExpressionStatement","src":"13747:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13801:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13812:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13797:3:61"},"nodeType":"YulFunctionCall","src":"13797:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"13817:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13790:6:61"},"nodeType":"YulFunctionCall","src":"13790:34:61"},"nodeType":"YulExpressionStatement","src":"13790:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13844:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13855:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13840:3:61"},"nodeType":"YulFunctionCall","src":"13840:19:61"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"13865:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"13873:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13861:3:61"},"nodeType":"YulFunctionCall","src":"13861:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13833:6:61"},"nodeType":"YulFunctionCall","src":"13833:84:61"},"nodeType":"YulExpressionStatement","src":"13833:84:61"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13561:9:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13572:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13580:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13588:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13596:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13604:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13615:4:61","type":""}],"src":"13411:512:61"},{"body":{"nodeType":"YulBlock","src":"14109:217:61","statements":[{"nodeType":"YulAssignment","src":"14119:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14131:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14142:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14127:3:61"},"nodeType":"YulFunctionCall","src":"14127:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14119:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14162:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"14173:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14155:6:61"},"nodeType":"YulFunctionCall","src":"14155:25:61"},"nodeType":"YulExpressionStatement","src":"14155:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14200:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14211:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14196:3:61"},"nodeType":"YulFunctionCall","src":"14196:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14220:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"14228:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14216:3:61"},"nodeType":"YulFunctionCall","src":"14216:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14189:6:61"},"nodeType":"YulFunctionCall","src":"14189:45:61"},"nodeType":"YulExpressionStatement","src":"14189:45:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14254:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14265:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14250:3:61"},"nodeType":"YulFunctionCall","src":"14250:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"14270:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14243:6:61"},"nodeType":"YulFunctionCall","src":"14243:34:61"},"nodeType":"YulExpressionStatement","src":"14243:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14297:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14308:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14293:3:61"},"nodeType":"YulFunctionCall","src":"14293:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"14313:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14286:6:61"},"nodeType":"YulFunctionCall","src":"14286:34:61"},"nodeType":"YulExpressionStatement","src":"14286:34:61"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14054:9:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14065:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14073:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14081:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14089:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14100:4:61","type":""}],"src":"13928:398:61"}]},"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_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_struct$_ForwardRequest_$5000_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\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 _2 := add(headStart, offset)\n        if slt(sub(dataEnd, _2), 192) { revert(0, 0) }\n        value0 := _2\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let _3 := add(headStart, offset_1)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_3)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_3, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_3, 32)\n        value2 := length\n    }\n    function copy_memory_to_memory(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        if gt(i, length) { 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(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_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xff00000000000000000000000000000000000000000000000000000000000000))\n        let _1 := 32\n        mstore(add(headStart, _1), 224)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 224))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes(value2, tail_1)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 160), value5)\n        mstore(add(headStart, 192), sub(tail_2, headStart))\n        let pos := tail_2\n        let length := mload(value6)\n        mstore(tail_2, length)\n        pos := add(tail_2, _1)\n        let srcPtr := add(value6, _1)\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_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_0a1000a56588b05caffad06969cd7617cd0867f6c7d159cd7e5aa9b3c93b18ae__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"MinimalForwarder: signature does\")\n        mstore(add(headStart, 96), \" not match request\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        sum := add(x, y)\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_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 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(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_d0b1e7612ebe87924453e5d4581b9067879655587bae8a2dfee438433699b890__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), \"Transaction reverted silently\")\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_decode_tuple_t_string_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 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 := 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        copy_memory_to_memory(add(_2, 32), add(memPtr, 32), _3)\n        value0 := memPtr\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_bytes(value0, add(headStart, 32))\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_0x01()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\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_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, value0)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), value5)\n        mstore(add(headStart, 192), value6)\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(_1, array)\n            let data := keccak256(_1, 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 := srcOffset_1\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 convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))\n        }\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_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__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), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__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), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__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), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3781":[{"length":32,"start":2076}],"3783":[{"length":32,"start":2034}],"3785":[{"length":32,"start":1992}],"3787":[{"length":32,"start":2157}],"3789":[{"length":32,"start":2197}],"3792":[{"length":32,"start":892}],"3795":[{"length":32,"start":934}]},"linkReferences":{},"object":"60806040526004361061003f5760003560e01c80632d0335ab1461004457806347153f821461009a57806384b0196e146100bb578063bf5d3bdb146100e3575b600080fd5b34801561005057600080fd5b5061008761005f366004610baa565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6040519081526020015b60405180910390f35b6100ad6100a8366004610be7565b610113565b604051610091929190610ce2565b3480156100c757600080fd5b506100d061036e565b6040516100919796959493929190610d05565b3480156100ef57600080fd5b506101036100fe366004610be7565b610412565b6040519015158152602001610091565b60006060610122858585610412565b6101995760405162461bcd60e51b815260206004820152603260248201527f4d696e696d616c466f727761726465723a207369676e617475726520646f657360448201527f206e6f74206d617463682072657175657374000000000000000000000000000060648201526084015b60405180910390fd5b6101a860808601356001610dc4565b600260006101b96020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008086602001602081019061020d9190610baa565b73ffffffffffffffffffffffffffffffffffffffff166060880135604089013561023a60a08b018b610e03565b61024760208d018d610baa565b60405160200161025993929190610e68565b60408051601f198184030181529082905261027391610ea1565b600060405180830381858888f193505050503d80600081146102b1576040519150601f19603f3d011682016040523d82523d6000602084013e6102b6565b606091505b509150915081610345576044815110156103125760405162461bcd60e51b815260206004820152601d60248201527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006044820152606401610190565b6004810190508080602001905181019061032c9190610eec565b60405162461bcd60e51b81526004016101909190610f99565b610354603f6060890135610fac565b5a1161036257610362610fe7565b90969095509350505050565b6000606080828080836103a17f000000000000000000000000000000000000000000000000000000000000000083610608565b6103cc7f00000000000000000000000000000000000000000000000000000000000000006001610608565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60008061053284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061052c92507fdd8f4b70b0f4393e889bd39128a30628a78b61816a9eb8199759e7a349657e489150610482905060208a018a610baa565b61049260408b0160208c01610baa565b60408b013560608c013560808d01356104ae60a08f018f610e03565b6040516104bc929190611016565b60408051918290038220602083019890985273ffffffffffffffffffffffffffffffffffffffff96871690820152949093166060850152608084019190915260a083015260c082015260e081019190915261010001604051602081830303815290604052805190602001206106ac565b906106f4565b905060808501356002600061054a6020890189610baa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156105c9575061059a6020860186610baa565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b95945050505050565b60006020835110156105ee576105e783610718565b90506105ff565b816105f984826110c8565b5060ff90505b92915050565b90565b606060ff831461061b576105e78361076f565b81805461062790611026565b80601f016020809104026020016040519081016040528092919081815260200182805461065390611026565b80156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505090506105ff565b60006105ff6106b96107ae565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061070385856108eb565b9150915061071081610930565b509392505050565b600080829050601f8151111561075c57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016101909190610f99565b805161076782611188565b179392505050565b6060600061077c83610a98565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614801561081457507f000000000000000000000000000000000000000000000000000000000000000046145b1561083e57507f000000000000000000000000000000000000000000000000000000000000000090565b6108e6604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b60008082516041036109215760208301516040840151606085015160001a61091587828585610ad9565b94509450505050610929565b506000905060025b9250929050565b6000816004811115610944576109446111ac565b0361094c5750565b6001816004811115610960576109606111ac565b036109ad5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610190565b60028160048111156109c1576109c16111ac565b03610a0e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610190565b6003816004811115610a2257610a226111ac565b03610a955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610190565b50565b600060ff8216601f8111156105ff576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b105750600090506003610ba1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610b64573d6000803e3d6000fd5b5050604051601f19015191505073ffffffffffffffffffffffffffffffffffffffff8116610b9a57600060019250925050610ba1565b9150600090505b94509492505050565b600060208284031215610bbc57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610be057600080fd5b9392505050565b600080600060408486031215610bfc57600080fd5b833567ffffffffffffffff80821115610c1457600080fd5b9085019060c08288031215610c2857600080fd5b90935060208501359080821115610c3e57600080fd5b818601915086601f830112610c5257600080fd5b813581811115610c6157600080fd5b876020828501011115610c7357600080fd5b6020830194508093505050509250925092565b60005b83811015610ca1578181015183820152602001610c89565b83811115610cb0576000848401525b50505050565b60008151808452610cce816020860160208601610c86565b601f01601f19169290920160200192915050565b8215158152604060208201526000610cfd6040830184610cb6565b949350505050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e081840152610d4160e084018a610cb6565b8381036040850152610d53818a610cb6565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015610db257835183529284019291840191600101610d96565b50909c9b505050505050505050505050565b60008219821115610dfe577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e3857600080fd5b83018035915067ffffffffffffffff821115610e5357600080fd5b60200191503681900382131561092957600080fd5b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b60008251610eb3818460208701610c86565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610efe57600080fd5b815167ffffffffffffffff80821115610f1657600080fd5b818401915084601f830112610f2a57600080fd5b815181811115610f3c57610f3c610ebd565b604051601f8201601f19908116603f01168101908382118183101715610f6457610f64610ebd565b81604052828152876020848701011115610f7d57600080fd5b610f8e836020830160208801610c86565b979650505050505050565b602081526000610be06020830184610cb6565b600082610fe2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b600181811c9082168061103a57607f821691505b602082108103611073577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156110c357600081815260208120601f850160051c810160208610156110a05750805b601f850160051c820191505b818110156110bf578281556001016110ac565b5050505b505050565b815167ffffffffffffffff8111156110e2576110e2610ebd565b6110f6816110f08454611026565b84611079565b602080601f83116001811461112b57600084156111135750858301515b600019600386901b1c1916600185901b1785556110bf565b600085815260208120601f198616915b8281101561115a5788860151825594840194600190910190840161113b565b50858210156111785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b805160208083015191908110156110735760001960209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x47153F82 EQ PUSH2 0x9A JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0xBF5D3BDB EQ PUSH2 0xE3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x87 PUSH2 0x5F CALLDATASIZE PUSH1 0x4 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAD PUSH2 0xA8 CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x113 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x91 SWAP3 SWAP2 SWAP1 PUSH2 0xCE2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH2 0x36E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x91 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xD05 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x103 PUSH2 0xFE CALLDATASIZE PUSH1 0x4 PUSH2 0xBE7 JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x91 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH2 0x122 DUP6 DUP6 DUP6 PUSH2 0x412 JUMP JUMPDEST PUSH2 0x199 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D696E696D616C466F727761726465723A207369676E617475726520646F6573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206E6F74206D6174636820726571756573740000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A8 PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH2 0xDC4 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 PUSH2 0x1B9 PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP1 DUP7 PUSH1 0x20 ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH2 0x23A PUSH1 0xA0 DUP12 ADD DUP12 PUSH2 0xE03 JUMP JUMPDEST PUSH2 0x247 PUSH1 0x20 DUP14 ADD DUP14 PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x259 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x273 SWAP2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2B1 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 0x2B6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x345 JUMPI PUSH1 0x44 DUP2 MLOAD LT ISZERO PUSH2 0x312 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 0x5472616E73616374696F6E2072657665727465642073696C656E746C79000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x32C SWAP2 SWAP1 PUSH2 0xEEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF99 JUMP JUMPDEST PUSH2 0x354 PUSH1 0x3F PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH2 0xFAC JUMP JUMPDEST GAS GT PUSH2 0x362 JUMPI PUSH2 0x362 PUSH2 0xFE7 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 PUSH2 0x3A1 PUSH32 0x0 DUP4 PUSH2 0x608 JUMP JUMPDEST PUSH2 0x3CC PUSH32 0x0 PUSH1 0x1 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH32 0xF00000000000000000000000000000000000000000000000000000000000000 SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP CHAINID SWAP8 POP ADDRESS SWAP7 POP SWAP5 POP SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x532 DUP5 DUP5 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 0x52C SWAP3 POP PUSH32 0xDD8F4B70B0F4393E889BD39128A30628A78B61816A9EB8199759E7A349657E48 SWAP2 POP PUSH2 0x482 SWAP1 POP PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x492 PUSH1 0x40 DUP12 ADD PUSH1 0x20 DUP13 ADD PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x40 DUP12 ADD CALLDATALOAD PUSH1 0x60 DUP13 ADD CALLDATALOAD PUSH1 0x80 DUP14 ADD CALLDATALOAD PUSH2 0x4AE PUSH1 0xA0 DUP16 ADD DUP16 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4BC SWAP3 SWAP2 SWAP1 PUSH2 0x1016 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH1 0x20 DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND SWAP1 DUP3 ADD MSTORE SWAP5 SWAP1 SWAP4 AND PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x100 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x6AC JUMP JUMPDEST SWAP1 PUSH2 0x6F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP6 ADD CALLDATALOAD PUSH1 0x2 PUSH1 0x0 PUSH2 0x54A PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ DUP1 ISZERO PUSH2 0x5C9 JUMPI POP PUSH2 0x59A PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0xBAA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD LT ISZERO PUSH2 0x5EE JUMPI PUSH2 0x5E7 DUP4 PUSH2 0x718 JUMP JUMPDEST SWAP1 POP PUSH2 0x5FF JUMP JUMPDEST DUP2 PUSH2 0x5F9 DUP5 DUP3 PUSH2 0x10C8 JUMP JUMPDEST POP PUSH1 0xFF SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFF DUP4 EQ PUSH2 0x61B JUMPI PUSH2 0x5E7 DUP4 PUSH2 0x76F JUMP JUMPDEST DUP2 DUP1 SLOAD PUSH2 0x627 SWAP1 PUSH2 0x1026 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 0x653 SWAP1 PUSH2 0x1026 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6A0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x675 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6A0 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 0x683 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FF PUSH2 0x6B9 PUSH2 0x7AE JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x703 DUP6 DUP6 PUSH2 0x8EB JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x710 DUP2 PUSH2 0x930 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x1F DUP2 MLOAD GT ISZERO PUSH2 0x75C JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x305A27A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x190 SWAP2 SWAP1 PUSH2 0xF99 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x767 DUP3 PUSH2 0x1188 JUMP JUMPDEST OR SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x77C DUP4 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP POP SWAP2 DUP3 MSTORE POP PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x814 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x83E JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x8E6 PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0x921 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x915 DUP8 DUP3 DUP6 DUP6 PUSH2 0xAD9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x929 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x944 JUMPI PUSH2 0x944 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0x94C JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x960 JUMPI PUSH2 0x960 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0x9AD 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 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x9C1 JUMPI PUSH2 0x9C1 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0xA0E 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 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA22 JUMPI PUSH2 0xA22 PUSH2 0x11AC JUMP JUMPDEST SUB PUSH2 0xA95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x190 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0x1F DUP2 GT ISZERO PUSH2 0x5FF JUMPI PUSH1 0x40 MLOAD PUSH32 0xB3512B0C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0xB10 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0xBA1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB64 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xB9A JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0xBA1 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xBE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xBFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP6 ADD SWAP1 PUSH1 0xC0 DUP3 DUP9 SUB SLT ISZERO PUSH2 0xC28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0xC3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xC61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC73 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 0xCA1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xC89 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xCB0 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xCCE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xCFD PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP9 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xE0 DUP2 DUP5 ADD MSTORE PUSH2 0xD41 PUSH1 0xE0 DUP5 ADD DUP11 PUSH2 0xCB6 JUMP JUMPDEST DUP4 DUP2 SUB PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xD53 DUP2 DUP11 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x60 DUP6 ADD DUP10 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD DUP8 SWAP1 MSTORE DUP5 DUP2 SUB PUSH1 0xC0 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE DUP4 DUP8 ADD SWAP3 POP SWAP1 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDB2 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xD96 JUMP JUMPDEST POP SWAP1 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xDFE JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0xE38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT 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 0x0 DUP3 MLOAD PUSH2 0xEB3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xC86 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH2 0xF3C PUSH2 0xEBD 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 0xF64 JUMPI PUSH2 0xF64 PUSH2 0xEBD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8E DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xC86 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xBE0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xCB6 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFE2 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 0x1 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 PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x103A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1073 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 0x10C3 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x10A0 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x10BF JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10AC JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10E2 JUMPI PUSH2 0x10E2 PUSH2 0xEBD JUMP JUMPDEST PUSH2 0x10F6 DUP2 PUSH2 0x10F0 DUP5 SLOAD PUSH2 0x1026 JUMP JUMPDEST DUP5 PUSH2 0x1079 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x112B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1113 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 0x10BF JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x115A JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x113B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1178 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 DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x1073 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"903:1934:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1393:99;;;;;;;;;;-1:-1:-1;1393:99:28;;;;;:::i;:::-;1472:13;;1446:7;1472:13;;;:7;:13;;;;;;;1393:99;;;;474:25:61;;;462:2;447:18;1393:99:28;;;;;;;;1866:969;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5021:633:22:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;1498:362:28:-;;;;;;;;;;-1:-1:-1;1498:362:28;;;;;:::i;:::-;;:::i;:::-;;;3768:14:61;;3761:22;3743:41;;3731:2;3716:18;1498:362:28;3603:187:61;1866:969:28;1986:4;1992:12;2028:22;2035:3;2040:9;;2028:6;:22::i;:::-;2020:85;;;;-1:-1:-1;;;2020:85:28;;3997:2:61;2020:85:28;;;3979:21:61;4036:2;4016:18;;;4009:30;4075:34;4055:18;;;4048:62;4146:20;4126:18;;;4119:48;4184:19;;2020:85:28;;;;;;;;;2135:13;:9;;;;2147:1;2135:13;:::i;:::-;2115:7;:17;2123:8;;;;:3;:8;:::i;:::-;2115:17;;;;;;;;;;;;;;;:33;;;;2219:12;2233:19;2256:3;:6;;;;;;;;;;:::i;:::-;:11;;2274:7;;;;2290:9;;;;2332:8;;;;2274:3;2332:8;:::i;:::-;2342;;;;:3;:8;:::i;:::-;2315:36;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2315:36:28;;;;;;;;;;2256:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2218:143;;;;2377:7;2372:309;;2496:2;2480:6;:13;:18;2476:63;;;2500:39;;-1:-1:-1;;;2500:39:28;;5967:2:61;2500:39:28;;;5949:21:61;6006:2;5986:18;;;5979:30;6045:31;6025:18;;;6018:59;6094:18;;2500:39:28;5765:353:61;2476:63:28;2602:4;2594:6;2590:17;2580:27;;2652:6;2641:28;;;;;;;;;;;;:::i;:::-;2634:36;;-1:-1:-1;;;2634:36:28;;;;;;;;:::i;2372:309::-;2781:12;2791:2;2781:7;;;;:12;:::i;:::-;2769:9;:24;2762:32;;;;:::i;:::-;2812:7;;;;-1:-1:-1;1866:969:28;-1:-1:-1;;;;1866:969:28:o;5021:633:22:-;5136:13;5163:18;;5136:13;;;5163:18;5427:41;:5;5136:13;5427:26;:41::i;:::-;5482:47;:8;5512:16;5482:29;:47::i;:::-;5621:16;;;5605:1;5621:16;;;;;;;;;5376:271;;;;-1:-1:-1;5376:271:22;;-1:-1:-1;5543:13:22;;-1:-1:-1;5578:4:22;;-1:-1:-1;5605:1:22;-1:-1:-1;5621:16:22;-1:-1:-1;5376:271:22;-1:-1:-1;5021:633:22:o;1498:362:28:-;1590:4;1606:14;1623:160;1773:9;;1623:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1623:141:28;;-1:-1:-1;1176:103:28;;-1:-1:-1;1684:8:28;;-1:-1:-1;1684:8:28;;;:3;:8;:::i;:::-;1694:6;;;;;;;;:::i;:::-;1702:9;;;;1713:7;;;;1722:9;;;;1743:8;;;;1702:3;1743:8;:::i;:::-;1733:19;;;;;;;:::i;:::-;;;;;;;;;;1663:90;;;8543:25:61;;;;8587:42;8665:15;;;8645:18;;;8638:43;8717:15;;;;8697:18;;;8690:43;8749:18;;;8742:34;;;;8792:19;;;8785:35;8836:19;;;8829:35;8880:19;;;8873:35;;;;8515:19;;1663:90:28;;;;;;;;;;;;1653:101;;;;;;1623:16;:141::i;:::-;:149;;:160::i;:::-;1606:177;-1:-1:-1;1822:9:28;;;;1801:7;:17;1809:8;;;;1822:3;1809:8;:::i;:::-;1801:17;;;;;;;;;;;;;;;;:30;:52;;;;-1:-1:-1;1845:8:28;;;;:3;:8;:::i;:::-;1835:18;;:6;:18;;;1801:52;1794:59;1498:362;-1:-1:-1;;;;;1498:362:28:o;2895:341:18:-;2991:11;3040:2;3024:5;3018:19;:24;3014:216;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3014:216;3142:5;3116:46;3157:5;3142;3116:46;:::i;:::-;-1:-1:-1;1371:66:18;;-1:-1:-1;3014:216:18;2895:341;;;;:::o;3310:202:19:-;3486:10;3310:202::o;3367:268:18:-;3461:13;1371:66;3490:47;;3486:143;;3560:15;3569:5;3560:8;:15::i;3486:143::-;3613:5;3606:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4768:165:22;4845:7;4871:55;4893:20;:18;:20::i;:::-;4915:10;8536:4:21;8530:11;8566:10;8554:23;;8606:4;8597:14;;8590:39;;;;8658:4;8649:14;;8642:34;8712:4;8697:20;;;8336:397;3661:227;3739:7;3759:17;3778:18;3800:27;3811:4;3817:9;3800:10;:27::i;:::-;3758:69;;;;3837:18;3849:5;3837:11;:18::i;:::-;-1:-1:-1;3872:9:21;3661:227;-1:-1:-1;;;3661:227:21:o;1689:286:18:-;1754:11;1777:17;1803:3;1777:30;;1835:2;1821:4;:11;:16;1817:72;;;1874:3;1860:18;;;;;;;;;;;:::i;1817:72::-;1955:11;;1938:13;1955:4;1938:13;:::i;:::-;1930:36;;1689:286;-1:-1:-1;;;1689:286:18:o;2059:405::-;2118:13;2143:11;2157:16;2168:4;2157:10;:16::i;:::-;2281:14;;;2292:2;2281:14;;;;;;;;;2143:30;;-1:-1:-1;2261:17:18;;2281:14;;;;;;;;;-1:-1:-1;;;2371:16:18;;;-1:-1:-1;2416:4:18;2407:14;;2400:28;;;;-1:-1:-1;2371:16:18;2059:405::o;3695:262:22:-;3748:7;3779:4;3771:28;3788:11;3771:28;;:63;;;;;3820:14;3803:13;:31;3771:63;3767:184;;;-1:-1:-1;3857:22:22;;3695:262::o;3767:184::-;3917:23;4054:81;;;1929:95;4054:81;;;13670:25:61;4077:11:22;13711:18:61;;;13704:34;;;;4090:14:22;13754:18:61;;;13747:34;4106:13:22;13797:18:61;;;13790:34;4129:4:22;13840:19:61;;;13833:84;4018:7:22;;13642:19:61;;4054:81:22;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3917:23;3910:30;;3695:262;:::o;2145:730:21:-;2226:7;2235:12;2263:9;:16;2283:2;2263:22;2259:610;;2599:4;2584:20;;2578:27;2648:4;2633:20;;2627:27;2705:4;2690:20;;2684:27;2301:9;2676:36;2746:25;2757:4;2676:36;2578:27;2627;2746:10;:25::i;:::-;2739:32;;;;;;;;;2259:610;-1:-1:-1;2818:1:21;;-1:-1:-1;2822:35:21;2259:610;2145:730;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:21;;12497:2:61;788:34:21;;;12479:21:61;12536:2;12516:18;;;12509:30;12575:26;12555:18;;;12548:54;12619:18;;788:34:21;12295:348:61;730:345:21;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:21;;12850:2:61;903:41:21;;;12832:21:61;12889:2;12869:18;;;12862:30;12928:33;12908:18;;;12901:61;12979:18;;903:41:21;12648:355:61;839:236:21;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:21;;13210:2:61;1020:44:21;;;13192:21:61;13249:2;13229:18;;;13222:30;13288:34;13268:18;;;13261:62;13359:4;13339:18;;;13332:32;13381:19;;1020:44:21;13008:398:61;961:114:21;570:511;:::o;2536:245:18:-;2597:7;2669:4;2633:40;;2696:2;2687:11;;2683:69;;;2721:20;;;;;;;;;;;;;;5009:1456:21;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:21;;-1:-1:-1;6123:30:21;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;14155:25:61;;;14228:4;14216:17;;14196:18;;;14189:45;;;;14250:18;;;14243:34;;;14293:18;;;14286:34;;;6276:24:21;;14127:19:61;;6276:24:21;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:21;;-1:-1:-1;;6276:24:21;;;-1:-1:-1;;6314:20:21;;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:21;;-1:-1:-1;5009:1456:21;;;;;;;;:::o;14:309:61:-;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:61:o;510:863::-;623:6;631;639;692:2;680:9;671:7;667:23;663:32;660:52;;;708:1;705;698:12;660:52;748:9;735:23;777:18;818:2;810:6;807:14;804:34;;;834:1;831;824:12;804:34;857:22;;;;913:3;895:16;;;891:26;888:46;;;930:1;927;920:12;888:46;953:2;;-1:-1:-1;1008:2:61;993:18;;980:32;;1024:16;;;1021:36;;;1053:1;1050;1043:12;1021:36;1091:8;1080:9;1076:24;1066:34;;1138:7;1131:4;1127:2;1123:13;1119:27;1109:55;;1160:1;1157;1150:12;1109:55;1200:2;1187:16;1226:2;1218:6;1215:14;1212:34;;;1242:1;1239;1232:12;1212:34;1287:7;1282:2;1273:6;1269:2;1265:15;1261:24;1258:37;1255:57;;;1308:1;1305;1298:12;1255:57;1339:2;1335;1331:11;1321:21;;1361:6;1351:16;;;;;510:863;;;;;:::o;1378:258::-;1450:1;1460:113;1474:6;1471:1;1468:13;1460:113;;;1550:11;;;1544:18;1531:11;;;1524:39;1496:2;1489:10;1460:113;;;1591:6;1588:1;1585:13;1582:48;;;1626:1;1617:6;1612:3;1608:16;1601:27;1582:48;;1378:258;;;:::o;1641:316::-;1682:3;1720:5;1714:12;1747:6;1742:3;1735:19;1763:63;1819:6;1812:4;1807:3;1803:14;1796:4;1789:5;1785:16;1763:63;:::i;:::-;1871:2;1859:15;-1:-1:-1;;1855:88:61;1846:98;;;;1946:4;1842:109;;1641:316;-1:-1:-1;;1641:316:61:o;1962:298::-;2145:6;2138:14;2131:22;2120:9;2113:41;2190:2;2185;2174:9;2170:18;2163:30;2094:4;2210:44;2250:2;2239:9;2235:18;2227:6;2210:44;:::i;:::-;2202:52;1962:298;-1:-1:-1;;;;1962:298:61:o;2265:1333::-;2662:66;2654:6;2650:79;2639:9;2632:98;2613:4;2749:2;2787:3;2782:2;2771:9;2767:18;2760:31;2814:45;2854:3;2843:9;2839:19;2831:6;2814:45;:::i;:::-;2907:9;2899:6;2895:22;2890:2;2879:9;2875:18;2868:50;2941:32;2966:6;2958;2941:32;:::i;:::-;3004:2;2989:18;;2982:34;;;3065:42;3053:55;;3047:3;3032:19;;3025:84;3140:3;3125:19;;3118:35;;;3190:22;;;3184:3;3169:19;;3162:51;3262:13;;3284:22;;;3360:15;;;;-1:-1:-1;3322:15:61;;;;-1:-1:-1;3403:169:61;3417:6;3414:1;3411:13;3403:169;;;3478:13;;3466:26;;3547:15;;;;3512:12;;;;3439:1;3432:9;3403:169;;;-1:-1:-1;3589:3:61;;2265:1333;-1:-1:-1;;;;;;;;;;;;2265:1333:61:o;4214:282::-;4254:3;4285:1;4281:6;4278:1;4275:13;4272:193;;;4321:77;4318:1;4311:88;4422:4;4419:1;4412:15;4450:4;4447:1;4440:15;4272:193;-1:-1:-1;4481:9:61;;4214:282::o;4501:580::-;4578:4;4584:6;4644:11;4631:25;4734:66;4723:8;4707:14;4703:29;4699:102;4679:18;4675:127;4665:155;;4816:1;4813;4806:12;4665:155;4843:33;;4895:20;;;-1:-1:-1;4938:18:61;4927:30;;4924:50;;;4970:1;4967;4960:12;4924:50;5003:4;4991:17;;-1:-1:-1;5034:14:61;5030:27;;;5020:38;;5017:58;;;5071:1;5068;5061:12;5086:395;5297:6;5289;5284:3;5271:33;5367:2;5363:15;;;;5380:66;5359:88;5323:16;;5348:100;;;5472:2;5464:11;;5086:395;-1:-1:-1;5086:395:61:o;5486:274::-;5615:3;5653:6;5647:13;5669:53;5715:6;5710:3;5703:4;5695:6;5691:17;5669:53;:::i;:::-;5738:16;;;;;5486:274;-1:-1:-1;;5486:274:61:o;6123:184::-;6175:77;6172:1;6165:88;6272:4;6269:1;6262:15;6296:4;6293:1;6286:15;6312:943;6392:6;6445:2;6433:9;6424:7;6420:23;6416:32;6413:52;;;6461:1;6458;6451:12;6413:52;6494:9;6488:16;6523:18;6564:2;6556:6;6553:14;6550:34;;;6580:1;6577;6570:12;6550:34;6618:6;6607:9;6603:22;6593:32;;6663:7;6656:4;6652:2;6648:13;6644:27;6634:55;;6685:1;6682;6675:12;6634:55;6714:2;6708:9;6736:2;6732;6729:10;6726:36;;;6742:18;;:::i;:::-;6876:2;6870:9;6938:4;6930:13;;-1:-1:-1;;6926:22:61;;;6950:2;6922:31;6918:40;6906:53;;;6974:18;;;6994:22;;;6971:46;6968:72;;;7020:18;;:::i;:::-;7060:10;7056:2;7049:22;7095:2;7087:6;7080:18;7135:7;7130:2;7125;7121;7117:11;7113:20;7110:33;7107:53;;;7156:1;7153;7146:12;7107:53;7169:55;7221:2;7216;7208:6;7204:15;7199:2;7195;7191:11;7169:55;:::i;:::-;7243:6;6312:943;-1:-1:-1;;;;;;;6312:943:61:o;7260:219::-;7409:2;7398:9;7391:21;7372:4;7429:44;7469:2;7458:9;7454:18;7446:6;7429:44;:::i;7484:274::-;7524:1;7550;7540:189;;7585:77;7582:1;7575:88;7686:4;7683:1;7676:15;7714:4;7711:1;7704:15;7540:189;-1:-1:-1;7743:9:61;;7484:274::o;7763:184::-;7815:77;7812:1;7805:88;7912:4;7909:1;7902:15;7936:4;7933:1;7926:15;7952:271;8135:6;8127;8122:3;8109:33;8091:3;8161:16;;8186:13;;;8161:16;7952:271;-1:-1:-1;7952:271:61:o;8919:437::-;8998:1;8994:12;;;;9041;;;9062:61;;9116:4;9108:6;9104:17;9094:27;;9062:61;9169:2;9161:6;9158:14;9138:18;9135:38;9132:218;;9206:77;9203:1;9196:88;9307:4;9304:1;9297:15;9335:4;9332:1;9325:15;9132:218;;8919:437;;;:::o;9487:545::-;9589:2;9584:3;9581:11;9578:448;;;9625:1;9650:5;9646:2;9639:17;9695:4;9691:2;9681:19;9765:2;9753:10;9749:19;9746:1;9742:27;9736:4;9732:38;9801:4;9789:10;9786:20;9783:47;;;-1:-1:-1;9824:4:61;9783:47;9879:2;9874:3;9870:12;9867:1;9863:20;9857:4;9853:31;9843:41;;9934:82;9952:2;9945:5;9942:13;9934:82;;;9997:17;;;9978:1;9967:13;9934:82;;;9938:3;;;9578:448;9487:545;;;:::o;10268:1471::-;10394:3;10388:10;10421:18;10413:6;10410:30;10407:56;;;10443:18;;:::i;:::-;10472:97;10562:6;10522:38;10554:4;10548:11;10522:38;:::i;:::-;10516:4;10472:97;:::i;:::-;10624:4;;10688:2;10677:14;;10705:1;10700:782;;;;11526:1;11543:6;11540:89;;;-1:-1:-1;11595:19:61;;;11589:26;11540:89;-1:-1:-1;;10165:1:61;10161:11;;;10157:84;10153:89;10143:100;10249:1;10245:11;;;10140:117;11642:81;;10670:1063;;10700:782;9434:1;9427:14;;;9471:4;9458:18;;-1:-1:-1;;10736:79:61;;;10913:236;10927:7;10924:1;10921:14;10913:236;;;11016:19;;;11010:26;10995:42;;11108:27;;;;11076:1;11064:14;;;;10943:19;;10913:236;;;10917:3;11177:6;11168:7;11165:19;11162:261;;;11238:19;;;11232:26;-1:-1:-1;;11321:1:61;11317:14;;;11333:3;11313:24;11309:97;11305:102;11290:118;11275:134;;11162:261;-1:-1:-1;;;;;11469:1:61;11453:14;;;11449:22;11436:36;;-1:-1:-1;10268:1471:61:o;11744:357::-;11862:12;;11909:4;11898:16;;;11892:23;;11862:12;11927:16;;11924:171;;;-1:-1:-1;;12001:4:61;11997:17;;;;11994:1;11990:25;11986:98;11975:110;;11744:357;-1:-1:-1;11744:357:61:o;12106:184::-;12158:77;12155:1;12148:88;12255:4;12252:1;12245:15;12279:4;12276:1;12269:15"},"methodIdentifiers":{"eip712Domain()":"84b0196e","execute((address,address,uint256,uint256,uint256,bytes),bytes)":"47153f82","getNonce(address)":"2d0335ab","verify((address,address,uint256,uint256,uint256,bytes),bytes)":"bf5d3bdb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Forwarder.ForwardRequest\",\"name\":\"req\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Forwarder.ForwardRequest\",\"name\":\"req\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@thirdweb-dev/contracts/forwarder/Forwarder.sol\":\"Forwarder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3\",\"dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"@thirdweb-dev/contracts/forwarder/Forwarder.sol\":{\"keccak256\":\"0x8bc50a548062ecf194c7a309ad5e0c53ebef9b66fe8b7efba65b2c959a5e25af\",\"license\":\"Apache 2.0\",\"urls\":[\"bzz-raw://dc2ca4ff00d7a1cb53eb04fecefc66fe31e7bc8a22cc0bac6a527485fe4ada94\",\"dweb:/ipfs/QmP7gidprXApdtJjwxX2KQZZmL9Mp5bwmYWNinmaTV7PoU\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":3797,"contract":"@thirdweb-dev/contracts/forwarder/Forwarder.sol:Forwarder","label":"_nameFallback","offset":0,"slot":"0","type":"t_string_storage"},{"astId":3799,"contract":"@thirdweb-dev/contracts/forwarder/Forwarder.sol:Forwarder","label":"_versionFallback","offset":0,"slot":"1","type":"t_string_storage"},{"astId":5009,"contract":"@thirdweb-dev/contracts/forwarder/Forwarder.sol:Forwarder","label":"_nonces","offset":0,"slot":"2","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/ChugSplashClaimer.sol":{"ChugSplashClaimer":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract ChugSplashRegistry","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"originEndpoint","type":"address"},{"indexed":true,"internalType":"uint32","name":"destDomainID","type":"uint32"},{"indexed":false,"internalType":"address","name":"crossChainAdapter","type":"address"}],"name":"CrossChainAdapterChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"orgID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"initiator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"InitiatorApprovalChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"orgID","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OrganizationIDClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"orgID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"originEndpoint","type":"address"},{"indexed":true,"internalType":"uint32","name":"destDomainID","type":"uint32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"}],"name":"RegistrationInitiated","type":"event"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"approvedInitiators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orgID","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"name":"claimOrganizationID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"crossChainAdapters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orgID","type":"bytes32"},{"components":[{"internalType":"address payable","name":"originEndpoint","type":"address"},{"internalType":"uint32","name":"destDomainID","type":"uint32"},{"internalType":"uint256","name":"relayerFee","type":"uint256"}],"internalType":"struct CrossChainMessageInfo[]","name":"_messages","type":"tuple[]"},{"components":[{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"version","type":"tuple"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"managerInitializerData","type":"bytes"}],"internalType":"struct RegistrationInfo[]","name":"_registrationInfo","type":"tuple[]"}],"name":"initiateRegistration","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"orgIDOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationIDs","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":"registry","outputs":[{"internalType":"contract ChugSplashRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_originEndpoint","type":"address"},{"internalType":"uint32","name":"_destDomainID","type":"uint32"},{"internalType":"address","name":"_crossChainAdapter","type":"address"}],"name":"setCrossChainAdapter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orgID","type":"bytes32"},{"internalType":"address","name":"_initiator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setInitiatorApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_2208":{"entryPoint":null,"id":2208,"parameterSlots":0,"returnSlots":0},"@_5262":{"entryPoint":null,"id":5262,"parameterSlots":2,"returnSlots":0},"@_msgSender_2833":{"entryPoint":null,"id":2833,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2296":{"entryPoint":95,"id":2296,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_contract$_ChugSplashRegistry_$8652_fromMemory":{"entryPoint":200,"id":null,"parameterSlots":2,"returnSlots":2},"validator_revert_address":{"entryPoint":175,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:564:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:61","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:61"},"nodeType":"YulFunctionCall","src":"125:12:61"},"nodeType":"YulExpressionStatement","src":"125:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:61"},"nodeType":"YulFunctionCall","src":"104:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:61"},"nodeType":"YulFunctionCall","src":"100:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:61"},"nodeType":"YulFunctionCall","src":"89:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:61"},"nodeType":"YulFunctionCall","src":"79:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:61"},"nodeType":"YulFunctionCall","src":"72:50:61"},"nodeType":"YulIf","src":"69:70:61"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:61","type":""}],"src":"14:131:61"},{"body":{"nodeType":"YulBlock","src":"275:287:61","statements":[{"body":{"nodeType":"YulBlock","src":"321:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"330:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"333:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"323:6:61"},"nodeType":"YulFunctionCall","src":"323:12:61"},"nodeType":"YulExpressionStatement","src":"323:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"296:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"305:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"292:3:61"},"nodeType":"YulFunctionCall","src":"292:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"317:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"288:3:61"},"nodeType":"YulFunctionCall","src":"288:32:61"},"nodeType":"YulIf","src":"285:52:61"},{"nodeType":"YulVariableDeclaration","src":"346:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"365:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"359:5:61"},"nodeType":"YulFunctionCall","src":"359:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"350:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"409:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"384:24:61"},"nodeType":"YulFunctionCall","src":"384:31:61"},"nodeType":"YulExpressionStatement","src":"384:31:61"},{"nodeType":"YulAssignment","src":"424:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"434:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"424:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"448:40:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"473:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"484:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"469:3:61"},"nodeType":"YulFunctionCall","src":"469:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"463:5:61"},"nodeType":"YulFunctionCall","src":"463:25:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"452:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"522:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"497:24:61"},"nodeType":"YulFunctionCall","src":"497:33:61"},"nodeType":"YulExpressionStatement","src":"497:33:61"},{"nodeType":"YulAssignment","src":"539:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"549:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"539:6:61"}]}]},"name":"abi_decode_tuple_t_addresst_contract$_ChugSplashRegistry_$8652_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"233:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"244:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"256:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"264:6:61","type":""}],"src":"150:412:61"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_contract$_ChugSplashRegistry_$8652_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b5060405162001506380380620015068339810160408190526200003491620000c8565b6200003f336200005f565b6001600160a01b03811660805262000057826200005f565b505062000107565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000c557600080fd5b50565b60008060408385031215620000dc57600080fd5b8251620000e981620000af565b6020840151909250620000fc81620000af565b809150509250929050565b6080516113d562000131600039600081816101c2015281816105c1015261067401526113d56000f3fe6080604052600436106100c75760003560e01c80638da5cb5b11610074578063d73e879f1161004e578063d73e879f14610290578063ef859f98146102cb578063f2fde38b146102eb57600080fd5b80638da5cb5b14610232578063a21dff001461025d578063c84902c01461027057600080fd5b8063715018a6116100a5578063715018a61461019b5780637b103999146101b057806385e5ee19146101e457600080fd5b8063052e8df4146100cc5780630ce22b63146100ee578063385afac314610133575b600080fd5b3480156100d857600080fd5b506100ec6100e7366004610d85565b61030b565b005b3480156100fa57600080fd5b5061011e610109366004610dc7565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561013f57600080fd5b5061017661014e366004610dc7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012a565b3480156101a757600080fd5b506100ec610440565b3480156101bc57600080fd5b506101767f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b506101766101ff366004610df4565b600460209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561023e57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610176565b6100ec61026b36600461105d565b610454565b34801561027c57600080fd5b506100ec61028b36600461115c565b6109f1565b34801561029c57600080fd5b5061011e6102ab36600461115c565b600360209081526000928352604080842090915290825290205460ff1681565b3480156102d757600080fd5b506100ec6102e636600461118c565b610b30565b3480156102f757600080fd5b506100ec6103063660046111ca565b610bcc565b60008381526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1633146103a95760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c617368436c61696d65723a2063616c6c6572206e6f74206f7260448201527f67204944206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600083815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016851515908117909155905190815285917f48dd4ae3ca6e1a6c3202c325c2e839ad733c03ad39a1a9b20cbe71c34197008691015b60405180910390a3505050565b610448610c69565b6104526000610cd0565b565b60008381526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1633148061049f5750600083815260036020908152604080832033845290915290205460ff165b6105115760405162461bcd60e51b815260206004820152602660248201527f4368756753706c617368436c61696d65723a2063616c6c6572206e6f7420617060448201527f70726f766564000000000000000000000000000000000000000000000000000060648201526084016103a0565b60005b82518110156109eb576000838281518110610531576105316111ee565b60200260200101519050600083838151811061054f5761054f6111ee565b602090810291909101810151805180519281015160408083015190517fe91204de0000000000000000000000000000000000000000000000000000000081526004810195909552602485019190915260448401529092509060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e91204de90606401602060405180830381865afa158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c919061121d565b6040517f204bbec700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e1919061123a565b6107535760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c617368436c61696d65723a20696e76616c6964206d616e616760448201527f65722076657273696f6e0000000000000000000000000000000000000000000060648201526084016103a0565b835173ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208289015163ffffffff16845290915290205416806108045760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c617368436c61696d65723a20696e76616c69642063726f737360448201527f436861696e20616461707465720000000000000000000000000000000000000060648201526084016103a0565b60008173ffffffffffffffffffffffffffffffffffffffff168a868860405160240161083293929190611283565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe787bc690000000000000000000000000000000000000000000000000000000017905251610895919061134d565b600060405180830381855af49150503d80600081146108d0576040519150601f19603f3d011682016040523d82523d6000602084013e6108d5565b606091505b505090508061094c5760405162461bcd60e51b815260206004820152603260248201527f4368756753706c617368436c61696d65723a206661696c656420746f20696e6960448201527f746961746520726567697374726174696f6e000000000000000000000000000060648201526084016103a0565b856020015163ffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff168b7fc5d417aa2205a71cce03a5afb0dcdc12632d4e1a11f9c5a7290c8169963b983e8860200151336040516109ca92919073ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b60405180910390a450505050505080806109e390611369565b915050610514565b50505050565b60008281526001602052604090205460ff1615610a765760405162461bcd60e51b815260206004820152602860248201527f4368756753706c617368436c61696d65723a206f7267494420616c726561647960448201527f20636c61696d656400000000000000000000000000000000000000000000000060648201526084016103a0565b600082815260016020818152604080842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909317909255600281529181902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8516908117909155905190815283917fd707f574bf0f880d3c188892d3bf504e65df6d41b7e7a0ffaad280c33accb57f910160405180910390a25050565b610b38610c69565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260046020908152604080832063ffffffff88168085529083529281902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695871695861790555193845290927f0738786373dbde79111483bbfffcaf997c7d56a541572ec2e6f110d3a3e0dbb49101610433565b610bd4610c69565b73ffffffffffffffffffffffffffffffffffffffff8116610c5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a0565b610c6681610cd0565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104525760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103a0565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c6657600080fd5b8035610d7281610d45565b919050565b8015158114610c6657600080fd5b600080600060608486031215610d9a57600080fd5b833592506020840135610dac81610d45565b91506040840135610dbc81610d77565b809150509250925092565b600060208284031215610dd957600080fd5b5035919050565b803563ffffffff81168114610d7257600080fd5b60008060408385031215610e0757600080fd5b8235610e1281610d45565b9150610e2060208401610de0565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610e7b57610e7b610e29565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610eaa57610eaa610e29565b604052919050565b600067ffffffffffffffff821115610ecc57610ecc610e29565b5060051b60200190565b600082601f830112610ee757600080fd5b813567ffffffffffffffff811115610f0157610f01610e29565b610f146020601f19601f84011601610e81565b818152846020838601011115610f2957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610f5757600080fd5b81356020610f6c610f6783610eb2565b610e81565b82815260059290921b84018101918181019086841115610f8b57600080fd5b8286015b8481101561105257803567ffffffffffffffff80821115610fb05760008081fd5b90880190818a03601f190160a080821215610fcb5760008081fd5b610fd3610e58565b606080841215610fe35760008081fd5b610feb610e58565b93508986013584526040808701358b860152818701358186015284835261101460808801610d67565b8b8401528387013594508585111561102e57600093508384fd5b61103c8f8c878a0101610ed6565b9083015250875250505092840192508301610f8f565b509695505050505050565b6000806000606080858703121561107357600080fd5b8435935060208086013567ffffffffffffffff8082111561109357600080fd5b818801915088601f8301126110a757600080fd5b81356110b5610f6782610eb2565b8181529085028301840190848101908b8311156110d157600080fd5b938501935b8285101561112b5786858d0312156110ee5760008081fd5b6110f6610e58565b853561110181610d45565b815261110e868801610de0565b8188015260408681013590820152825293860193908501906110d6565b97505050604088013593508084111561114357600080fd5b50505061115286828701610f46565b9150509250925092565b6000806040838503121561116f57600080fd5b82359150602083013561118181610d45565b809150509250929050565b6000806000606084860312156111a157600080fd5b83356111ac81610d45565b92506111ba60208501610de0565b91506040840135610dbc81610d45565b6000602082840312156111dc57600080fd5b81356111e781610d45565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561122f57600080fd5b81516111e781610d45565b60006020828403121561124c57600080fd5b81516111e781610d77565b60005b8381101561127257818101518382015260200161125a565b838111156109eb5750506000910152565b83815260a0602082015260008351805160a0840152602081015160c0840152604081015160e08401525073ffffffffffffffffffffffffffffffffffffffff602085015116610100830152604084015160a06101208401528051806101408501526101606112f78282870160208601611257565b80601f19601f84011686010193505050506113456040830184805173ffffffffffffffffffffffffffffffffffffffff16825260208082015163ffffffff1690830152604090810151910152565b949350505050565b6000825161135f818460208701611257565b9190910192915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036113c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1506 CODESIZE SUB DUP1 PUSH3 0x1506 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xC8 JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x5F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x80 MSTORE PUSH3 0x57 DUP3 PUSH3 0x5F JUMP JUMPDEST POP POP PUSH3 0x107 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 DUP2 EQ PUSH3 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0xE9 DUP2 PUSH3 0xAF JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0xFC DUP2 PUSH3 0xAF JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x13D5 PUSH3 0x131 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1C2 ADD MSTORE DUP2 DUP2 PUSH2 0x5C1 ADD MSTORE PUSH2 0x674 ADD MSTORE PUSH2 0x13D5 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x74 JUMPI DUP1 PUSH4 0xD73E879F GT PUSH2 0x4E JUMPI DUP1 PUSH4 0xD73E879F EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xEF859F98 EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0xA21DFF00 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0xC84902C0 EQ PUSH2 0x270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xA5 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x85E5EE19 EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52E8DF4 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0xCE22B63 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0x385AFAC3 EQ PUSH2 0x133 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0xE7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD85 JUMP JUMPDEST PUSH2 0x30B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11E PUSH2 0x109 CALLDATASIZE PUSH1 0x4 PUSH2 0xDC7 JUMP JUMPDEST PUSH1 0x1 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 CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x14E CALLDATASIZE PUSH1 0x4 PUSH2 0xDC7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x440 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0xDF4 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x176 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x105D JUMP JUMPDEST PUSH2 0x454 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x115C JUMP JUMPDEST PUSH2 0x9F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11E PUSH2 0x2AB CALLDATASIZE PUSH1 0x4 PUSH2 0x115C 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 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x2E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xB30 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x306 CALLDATASIZE PUSH1 0x4 PUSH2 0x11CA JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x3A9 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 0x4368756753706C617368436C61696D65723A2063616C6C6572206E6F74206F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x67204944206F776E657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP6 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 DUP2 MSTORE DUP6 SWAP2 PUSH32 0x48DD4AE3CA6E1A6C3202C325C2E839AD733C03AD39A1A9B20CBE71C341970086 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x448 PUSH2 0xC69 JUMP JUMPDEST PUSH2 0x452 PUSH1 0x0 PUSH2 0xCD0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ DUP1 PUSH2 0x49F JUMPI POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x511 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 0x4368756753706C617368436C61696D65723A2063616C6C6572206E6F74206170 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x70726F7665640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x9EB JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x531 JUMPI PUSH2 0x531 PUSH2 0x11EE JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x54F JUMPI PUSH2 0x54F PUSH2 0x11EE JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP1 MLOAD DUP1 MLOAD SWAP3 DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH32 0xE91204DE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x24 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP5 ADD MSTORE SWAP1 SWAP3 POP SWAP1 PUSH1 0x0 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xE91204DE SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x608 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 0x62C SWAP2 SWAP1 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6BD 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 0x6E1 SWAP2 SWAP1 PUSH2 0x123A JUMP JUMPDEST PUSH2 0x753 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 0x4368756753706C617368436C61696D65723A20696E76616C6964206D616E6167 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65722076657273696F6E00000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST DUP4 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP3 DUP10 ADD MLOAD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x804 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 0x4368756753706C617368436C61696D65723A20696E76616C69642063726F7373 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x436861696E206164617074657200000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 DUP7 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x832 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1283 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE787BC6900000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x134D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8D0 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 0x8D5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x94C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C617368436C61696D65723A206661696C656420746F20696E69 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x746961746520726567697374726174696F6E0000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH4 0xFFFFFFFF AND DUP7 PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 PUSH32 0xC5D417AA2205A71CCE03A5AFB0DCDC12632D4E1A11F9C5A7290C8169963B983E DUP9 PUSH1 0x20 ADD MLOAD CALLER PUSH1 0x40 MLOAD PUSH2 0x9CA SWAP3 SWAP2 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x9E3 SWAP1 PUSH2 0x1369 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x514 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA76 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C617368436C61696D65723A206F7267494420616C7265616479 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636C61696D6564000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x2 DUP2 MSTORE SWAP2 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 DUP2 MSTORE DUP4 SWAP2 PUSH32 0xD707F574BF0F880D3C188892D3BF504E65DF6D41B7E7A0FFAAD280C33ACCB57F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0xB38 PUSH2 0xC69 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP6 DUP8 AND SWAP6 DUP7 OR SWAP1 SSTORE MLOAD SWAP4 DUP5 MSTORE SWAP1 SWAP3 PUSH32 0x738786373DBDE79111483BBFFFCAF997C7D56A541572EC2E6F110D3A3E0DBB4 SWAP2 ADD PUSH2 0x433 JUMP JUMPDEST PUSH2 0xBD4 PUSH2 0xC69 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xC5D 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 0x3A0 JUMP JUMPDEST PUSH2 0xC66 DUP2 PUSH2 0xCD0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x452 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 0x3A0 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 0xC66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xD72 DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xDAC DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0xDBC DUP2 PUSH2 0xD77 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xD72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xE12 DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP2 POP PUSH2 0xE20 PUSH1 0x20 DUP5 ADD PUSH2 0xDE0 JUMP JUMPDEST SWAP1 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 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE7B JUMPI PUSH2 0xE7B PUSH2 0xE29 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 0xEAA JUMPI PUSH2 0xEAA PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xECC JUMPI PUSH2 0xECC PUSH2 0xE29 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF01 JUMPI PUSH2 0xF01 PUSH2 0xE29 JUMP JUMPDEST PUSH2 0xF14 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0xE81 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xF29 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 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xF6C PUSH2 0xF67 DUP4 PUSH2 0xEB2 JUMP JUMPDEST PUSH2 0xE81 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 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x1052 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFB0 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST SWAP1 DUP9 ADD SWAP1 DUP2 DUP11 SUB PUSH1 0x1F NOT ADD PUSH1 0xA0 DUP1 DUP3 SLT ISZERO PUSH2 0xFCB JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xFD3 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x60 DUP1 DUP5 SLT ISZERO PUSH2 0xFE3 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xFEB PUSH2 0xE58 JUMP JUMPDEST SWAP4 POP DUP10 DUP7 ADD CALLDATALOAD DUP5 MSTORE PUSH1 0x40 DUP1 DUP8 ADD CALLDATALOAD DUP12 DUP7 ADD MSTORE DUP2 DUP8 ADD CALLDATALOAD DUP2 DUP7 ADD MSTORE DUP5 DUP4 MSTORE PUSH2 0x1014 PUSH1 0x80 DUP9 ADD PUSH2 0xD67 JUMP JUMPDEST DUP12 DUP5 ADD MSTORE DUP4 DUP8 ADD CALLDATALOAD SWAP5 POP DUP6 DUP6 GT ISZERO PUSH2 0x102E JUMPI PUSH1 0x0 SWAP4 POP DUP4 DUP5 REVERT JUMPDEST PUSH2 0x103C DUP16 DUP13 DUP8 DUP11 ADD ADD PUSH2 0xED6 JUMP JUMPDEST SWAP1 DUP4 ADD MSTORE POP DUP8 MSTORE POP POP POP SWAP3 DUP5 ADD SWAP3 POP DUP4 ADD PUSH2 0xF8F JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP1 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1073 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1093 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x10A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10B5 PUSH2 0xF67 DUP3 PUSH2 0xEB2 JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP1 DUP6 MUL DUP4 ADD DUP5 ADD SWAP1 DUP5 DUP2 ADD SWAP1 DUP12 DUP4 GT ISZERO PUSH2 0x10D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x112B JUMPI DUP7 DUP6 DUP14 SUB SLT ISZERO PUSH2 0x10EE JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x10F6 PUSH2 0xE58 JUMP JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1101 DUP2 PUSH2 0xD45 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x110E DUP7 DUP9 ADD PUSH2 0xDE0 JUMP JUMPDEST DUP2 DUP9 ADD MSTORE PUSH1 0x40 DUP7 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP3 MSTORE SWAP4 DUP7 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x10D6 JUMP JUMPDEST SWAP8 POP POP POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP4 POP DUP1 DUP5 GT ISZERO PUSH2 0x1143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH2 0x1152 DUP7 DUP3 DUP8 ADD PUSH2 0xF46 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1181 DUP2 PUSH2 0xD45 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x11A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x11AC DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP3 POP PUSH2 0x11BA PUSH1 0x20 DUP6 ADD PUSH2 0xDE0 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0xDBC DUP2 PUSH2 0xD45 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11E7 DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x122F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11E7 DUP2 PUSH2 0xD45 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x124C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11E7 DUP2 PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1272 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x125A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9EB JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 DUP4 MLOAD DUP1 MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0xE0 DUP5 ADD MSTORE POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 DUP6 ADD MLOAD AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH2 0x120 DUP5 ADD MSTORE DUP1 MLOAD DUP1 PUSH2 0x140 DUP6 ADD MSTORE PUSH2 0x160 PUSH2 0x12F7 DUP3 DUP3 DUP8 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1257 JUMP JUMPDEST DUP1 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP7 ADD ADD SWAP4 POP POP POP POP PUSH2 0x1345 PUSH1 0x40 DUP4 ADD DUP5 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x135F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1257 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x13C1 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"396:3870:29:-:0;;;1422:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:13;719:10:17;936:18:13;:32::i;:::-;-1:-1:-1;;;;;1490:20:29;;;;1520:26;1539:6;1520:18;:26::i;:::-;1422:131;;396:3870;;2426:187:13;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:13;;;-1:-1:-1;;;;;;2534:17:13;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:131:61:-;-1:-1:-1;;;;;89:31:61;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:412::-;256:6;264;317:2;305:9;296:7;292:23;288:32;285:52;;;333:1;330;323:12;285:52;365:9;359:16;384:31;409:5;384:31;:::i;:::-;484:2;469:18;;463:25;434:5;;-1:-1:-1;497:33:61;463:25;497:33;:::i;:::-;549:7;539:17;;;150:412;;;;;:::o;:::-;396:3870:29;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_2239":{"entryPoint":3177,"id":2239,"parameterSlots":0,"returnSlots":0},"@_msgSender_2833":{"entryPoint":null,"id":2833,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2296":{"entryPoint":3280,"id":2296,"parameterSlots":1,"returnSlots":0},"@approvedInitiators_5238":{"entryPoint":null,"id":5238,"parameterSlots":0,"returnSlots":0},"@claimOrganizationID_5295":{"entryPoint":2545,"id":5295,"parameterSlots":2,"returnSlots":0},"@crossChainAdapters_5244":{"entryPoint":null,"id":5244,"parameterSlots":0,"returnSlots":0},"@initiateRegistration_5431":{"entryPoint":1108,"id":5431,"parameterSlots":3,"returnSlots":0},"@orgIDOwners_5232":{"entryPoint":null,"id":5232,"parameterSlots":0,"returnSlots":0},"@organizationIDs_5228":{"entryPoint":null,"id":5228,"parameterSlots":0,"returnSlots":0},"@owner_2225":{"entryPoint":null,"id":2225,"parameterSlots":0,"returnSlots":1},"@registry_5224":{"entryPoint":null,"id":5224,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2253":{"entryPoint":1088,"id":2253,"parameterSlots":0,"returnSlots":0},"@setCrossChainAdapter_5491":{"entryPoint":2864,"id":5491,"parameterSlots":3,"returnSlots":0},"@setInitiatorApproval_5465":{"entryPoint":779,"id":5465,"parameterSlots":3,"returnSlots":0},"@transferOwnership_2276":{"entryPoint":3020,"id":2276,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":3431,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_struct_RegistrationInfo_dyn":{"entryPoint":3910,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes":{"entryPoint":3798,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4554,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":4637,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint32":{"entryPoint":3572,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint32t_address":{"entryPoint":4492,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4666,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":3527,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":4444,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_addresst_bool":{"entryPoint":3461,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32t_array$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$dyn_memory_ptrt_array$_t_struct$_RegistrationInfo_$5575_memory_ptr_$dyn_memory_ptr":{"entryPoint":4189,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_uint32":{"entryPoint":3552,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_struct_CrossChainMessageInfo":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4941,"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_t_struct$_RegistrationInfo_$5575_memory_ptr_t_struct$_CrossChainMessageInfo_$5560_memory_ptr__to_t_bytes32_t_struct$_RegistrationInfo_$5575_memory_ptr_t_struct$_CrossChainMessageInfo_$5560_memory_ptr__fromStack_reversed":{"entryPoint":4739,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"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_640f34a928259f01608f46baf73a4cd239bf35ab13e80fbd1e6fedcbc59513b7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8aa16de064b0d4bc3e18581fd7ca0a68affd08efd8e9e2d3b3c29d12c609596b__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_c0474ff842f36dbc33ed4df1f325b5f3b9519e950f0cc89458a27a13ba1a4704__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cba8bd74eece2738fbff49633c8300e0cb2d7ddd2fcffa7383cd914f0853966e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d9c081a9dea8ed12ff75f290a05f238b5a259f42a155230111212312ff46e356__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dad25f4d162c720300d3a9513948bbfa9b12f4dfb9d21b85f9f818a36cfea887__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"allocate_memory":{"entryPoint":3713,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_2295":{"entryPoint":3672,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_2297":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_array_struct_CrossChainMessageInfo_dyn":{"entryPoint":3762,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":4695,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":4969,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":4590,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3625,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":3397,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":3447,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15894:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"146:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"155:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"158:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"148:6:61"},"nodeType":"YulFunctionCall","src":"148:12:61"},"nodeType":"YulExpressionStatement","src":"148:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"100:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:61"},"nodeType":"YulFunctionCall","src":"89:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:61"},"nodeType":"YulFunctionCall","src":"79:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:61"},"nodeType":"YulFunctionCall","src":"72:73:61"},"nodeType":"YulIf","src":"69:93:61"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:61","type":""}],"src":"14:154:61"},{"body":{"nodeType":"YulBlock","src":"222:85:61","statements":[{"nodeType":"YulAssignment","src":"232:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"254:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"241:12:61"},"nodeType":"YulFunctionCall","src":"241:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"232:5:61"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"295:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"270:24:61"},"nodeType":"YulFunctionCall","src":"270:31:61"},"nodeType":"YulExpressionStatement","src":"270:31:61"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"201:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"212:5:61","type":""}],"src":"173:134:61"},{"body":{"nodeType":"YulBlock","src":"354:76:61","statements":[{"body":{"nodeType":"YulBlock","src":"408:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"417:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"420:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"410:6:61"},"nodeType":"YulFunctionCall","src":"410:12:61"},"nodeType":"YulExpressionStatement","src":"410:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"377:5:61"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"398:5:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"391:6:61"},"nodeType":"YulFunctionCall","src":"391:13:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"384:6:61"},"nodeType":"YulFunctionCall","src":"384:21:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"374:2:61"},"nodeType":"YulFunctionCall","src":"374:32:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"367:6:61"},"nodeType":"YulFunctionCall","src":"367:40:61"},"nodeType":"YulIf","src":"364:60:61"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"343:5:61","type":""}],"src":"312:118:61"},{"body":{"nodeType":"YulBlock","src":"536:349:61","statements":[{"body":{"nodeType":"YulBlock","src":"582:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"591:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"594:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"584:6:61"},"nodeType":"YulFunctionCall","src":"584:12:61"},"nodeType":"YulExpressionStatement","src":"584:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"557:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"553:3:61"},"nodeType":"YulFunctionCall","src":"553:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"578:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"549:3:61"},"nodeType":"YulFunctionCall","src":"549:32:61"},"nodeType":"YulIf","src":"546:52:61"},{"nodeType":"YulAssignment","src":"607:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"630:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"617:12:61"},"nodeType":"YulFunctionCall","src":"617:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"607:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"649:45:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"679:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"690:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"675:3:61"},"nodeType":"YulFunctionCall","src":"675:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"662:12:61"},"nodeType":"YulFunctionCall","src":"662:32:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"653:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"728:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"703:24:61"},"nodeType":"YulFunctionCall","src":"703:31:61"},"nodeType":"YulExpressionStatement","src":"703:31:61"},{"nodeType":"YulAssignment","src":"743:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"753:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"743:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"767:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"799:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"810:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"795:3:61"},"nodeType":"YulFunctionCall","src":"795:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"782:12:61"},"nodeType":"YulFunctionCall","src":"782:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"771:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"845:7:61"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"823:21:61"},"nodeType":"YulFunctionCall","src":"823:30:61"},"nodeType":"YulExpressionStatement","src":"823:30:61"},{"nodeType":"YulAssignment","src":"862:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"872:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"862:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"486:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"497:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"509:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"517:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"525:6:61","type":""}],"src":"435:450:61"},{"body":{"nodeType":"YulBlock","src":"960:110:61","statements":[{"body":{"nodeType":"YulBlock","src":"1006:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1015:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1018:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1008:6:61"},"nodeType":"YulFunctionCall","src":"1008:12:61"},"nodeType":"YulExpressionStatement","src":"1008:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"981:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"990:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"977:3:61"},"nodeType":"YulFunctionCall","src":"977:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1002:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"973:3:61"},"nodeType":"YulFunctionCall","src":"973:32:61"},"nodeType":"YulIf","src":"970:52:61"},{"nodeType":"YulAssignment","src":"1031:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1054:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1041:12:61"},"nodeType":"YulFunctionCall","src":"1041:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1031:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"926:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"937:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"949:6:61","type":""}],"src":"890:180:61"},{"body":{"nodeType":"YulBlock","src":"1170:92:61","statements":[{"nodeType":"YulAssignment","src":"1180:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1192:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1203:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1188:3:61"},"nodeType":"YulFunctionCall","src":"1188:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1180:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1222:9:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1247:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1240:6:61"},"nodeType":"YulFunctionCall","src":"1240:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1233:6:61"},"nodeType":"YulFunctionCall","src":"1233:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1215:6:61"},"nodeType":"YulFunctionCall","src":"1215:41:61"},"nodeType":"YulExpressionStatement","src":"1215:41:61"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1139:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1150:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1161:4:61","type":""}],"src":"1075:187:61"},{"body":{"nodeType":"YulBlock","src":"1368:125:61","statements":[{"nodeType":"YulAssignment","src":"1378:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1390:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1401:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1386:3:61"},"nodeType":"YulFunctionCall","src":"1386:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1378:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1420:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1435:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1443:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1431:3:61"},"nodeType":"YulFunctionCall","src":"1431:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1413:6:61"},"nodeType":"YulFunctionCall","src":"1413:74:61"},"nodeType":"YulExpressionStatement","src":"1413:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1337:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1348:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1359:4:61","type":""}],"src":"1267:226:61"},{"body":{"nodeType":"YulBlock","src":"1626:125:61","statements":[{"nodeType":"YulAssignment","src":"1636:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1648:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1659:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1644:3:61"},"nodeType":"YulFunctionCall","src":"1644:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1636:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1678:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1693:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1701:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1689:3:61"},"nodeType":"YulFunctionCall","src":"1689:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1671:6:61"},"nodeType":"YulFunctionCall","src":"1671:74:61"},"nodeType":"YulExpressionStatement","src":"1671:74:61"}]},"name":"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1595:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1606:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1617:4:61","type":""}],"src":"1498:253:61"},{"body":{"nodeType":"YulBlock","src":"1804:115:61","statements":[{"nodeType":"YulAssignment","src":"1814:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1836:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1823:12:61"},"nodeType":"YulFunctionCall","src":"1823:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1814:5:61"}]},{"body":{"nodeType":"YulBlock","src":"1897:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1906:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1909:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1899:6:61"},"nodeType":"YulFunctionCall","src":"1899:12:61"},"nodeType":"YulExpressionStatement","src":"1899:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1865:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1876:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"1883:10:61","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1872:3:61"},"nodeType":"YulFunctionCall","src":"1872:22:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1862:2:61"},"nodeType":"YulFunctionCall","src":"1862:33:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1855:6:61"},"nodeType":"YulFunctionCall","src":"1855:41:61"},"nodeType":"YulIf","src":"1852:61:61"}]},"name":"abi_decode_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1783:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1794:5:61","type":""}],"src":"1756:163:61"},{"body":{"nodeType":"YulBlock","src":"2010:233:61","statements":[{"body":{"nodeType":"YulBlock","src":"2056:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2065:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2068:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2058:6:61"},"nodeType":"YulFunctionCall","src":"2058:12:61"},"nodeType":"YulExpressionStatement","src":"2058:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2031:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"2040:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2027:3:61"},"nodeType":"YulFunctionCall","src":"2027:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"2052:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2023:3:61"},"nodeType":"YulFunctionCall","src":"2023:32:61"},"nodeType":"YulIf","src":"2020:52:61"},{"nodeType":"YulVariableDeclaration","src":"2081:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2107:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2094:12:61"},"nodeType":"YulFunctionCall","src":"2094:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2085:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2151:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2126:24:61"},"nodeType":"YulFunctionCall","src":"2126:31:61"},"nodeType":"YulExpressionStatement","src":"2126:31:61"},{"nodeType":"YulAssignment","src":"2166:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"2176:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2166:6:61"}]},{"nodeType":"YulAssignment","src":"2190:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2222:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2233:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2218:3:61"},"nodeType":"YulFunctionCall","src":"2218:18:61"}],"functionName":{"name":"abi_decode_uint32","nodeType":"YulIdentifier","src":"2200:17:61"},"nodeType":"YulFunctionCall","src":"2200:37:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2190:6:61"}]}]},"name":"abi_decode_tuple_t_addresst_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1968:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1979:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1991:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1999:6:61","type":""}],"src":"1924:319:61"},{"body":{"nodeType":"YulBlock","src":"2280:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2297:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2300:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2290:6:61"},"nodeType":"YulFunctionCall","src":"2290:88:61"},"nodeType":"YulExpressionStatement","src":"2290:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2397:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2387:6:61"},"nodeType":"YulFunctionCall","src":"2387:15:61"},"nodeType":"YulExpressionStatement","src":"2387:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2418:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2421:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2411:6:61"},"nodeType":"YulFunctionCall","src":"2411:15:61"},"nodeType":"YulExpressionStatement","src":"2411:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2248:184:61"},{"body":{"nodeType":"YulBlock","src":"2483:207:61","statements":[{"nodeType":"YulAssignment","src":"2493:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2509:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2503:5:61"},"nodeType":"YulFunctionCall","src":"2503:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2493:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"2521:35:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2543:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2551:4:61","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2539:3:61"},"nodeType":"YulFunctionCall","src":"2539:17:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2525:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2631:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2633:16:61"},"nodeType":"YulFunctionCall","src":"2633:18:61"},"nodeType":"YulExpressionStatement","src":"2633:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2574:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"2586:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2571:2:61"},"nodeType":"YulFunctionCall","src":"2571:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2610:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2622:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2607:2:61"},"nodeType":"YulFunctionCall","src":"2607:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2568:2:61"},"nodeType":"YulFunctionCall","src":"2568:62:61"},"nodeType":"YulIf","src":"2565:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2669:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2673:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2662:6:61"},"nodeType":"YulFunctionCall","src":"2662:22:61"},"nodeType":"YulExpressionStatement","src":"2662:22:61"}]},"name":"allocate_memory_2295","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2472:6:61","type":""}],"src":"2437:253:61"},{"body":{"nodeType":"YulBlock","src":"2741:205:61","statements":[{"nodeType":"YulAssignment","src":"2751:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2767:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2761:5:61"},"nodeType":"YulFunctionCall","src":"2761:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2751:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"2779:33:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2801:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2809:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2797:3:61"},"nodeType":"YulFunctionCall","src":"2797:15:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2783:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2887:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2889:16:61"},"nodeType":"YulFunctionCall","src":"2889:18:61"},"nodeType":"YulExpressionStatement","src":"2889:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2830:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"2842:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2827:2:61"},"nodeType":"YulFunctionCall","src":"2827:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2866:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2878:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2863:2:61"},"nodeType":"YulFunctionCall","src":"2863:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2824:2:61"},"nodeType":"YulFunctionCall","src":"2824:62:61"},"nodeType":"YulIf","src":"2821:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2925:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2929:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2918:6:61"},"nodeType":"YulFunctionCall","src":"2918:22:61"},"nodeType":"YulExpressionStatement","src":"2918:22:61"}]},"name":"allocate_memory_2297","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2730:6:61","type":""}],"src":"2695:251:61"},{"body":{"nodeType":"YulBlock","src":"2996:289:61","statements":[{"nodeType":"YulAssignment","src":"3006:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3022:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3016:5:61"},"nodeType":"YulFunctionCall","src":"3016:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3006:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"3034:117:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3056:6:61"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"3072:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"3078:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3068:3:61"},"nodeType":"YulFunctionCall","src":"3068:13:61"},{"kind":"number","nodeType":"YulLiteral","src":"3083:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3064:3:61"},"nodeType":"YulFunctionCall","src":"3064:86:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3052:3:61"},"nodeType":"YulFunctionCall","src":"3052:99:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3038:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3226:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3228:16:61"},"nodeType":"YulFunctionCall","src":"3228:18:61"},"nodeType":"YulExpressionStatement","src":"3228:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3169:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"3181:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3166:2:61"},"nodeType":"YulFunctionCall","src":"3166:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3205:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3217:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3202:2:61"},"nodeType":"YulFunctionCall","src":"3202:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3163:2:61"},"nodeType":"YulFunctionCall","src":"3163:62:61"},"nodeType":"YulIf","src":"3160:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3264:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3268:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3257:6:61"},"nodeType":"YulFunctionCall","src":"3257:22:61"},"nodeType":"YulExpressionStatement","src":"3257:22:61"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"2976:4:61","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2985:6:61","type":""}],"src":"2951:334:61"},{"body":{"nodeType":"YulBlock","src":"3380:114:61","statements":[{"body":{"nodeType":"YulBlock","src":"3424:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3426:16:61"},"nodeType":"YulFunctionCall","src":"3426:18:61"},"nodeType":"YulExpressionStatement","src":"3426:18:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3396:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3404:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3393:2:61"},"nodeType":"YulFunctionCall","src":"3393:30:61"},"nodeType":"YulIf","src":"3390:56:61"},{"nodeType":"YulAssignment","src":"3455:33:61","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3471:1:61","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"3474:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3467:3:61"},"nodeType":"YulFunctionCall","src":"3467:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"3483:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3463:3:61"},"nodeType":"YulFunctionCall","src":"3463:25:61"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"3455:4:61"}]}]},"name":"array_allocation_size_array_struct_CrossChainMessageInfo_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"3360:6:61","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"3371:4:61","type":""}],"src":"3290:204:61"},{"body":{"nodeType":"YulBlock","src":"3551:537:61","statements":[{"body":{"nodeType":"YulBlock","src":"3600:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3609:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3612:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3602:6:61"},"nodeType":"YulFunctionCall","src":"3602:12:61"},"nodeType":"YulExpressionStatement","src":"3602:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3579:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3587:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3575:3:61"},"nodeType":"YulFunctionCall","src":"3575:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"3594:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3571:3:61"},"nodeType":"YulFunctionCall","src":"3571:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3564:6:61"},"nodeType":"YulFunctionCall","src":"3564:35:61"},"nodeType":"YulIf","src":"3561:55:61"},{"nodeType":"YulVariableDeclaration","src":"3625:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3648:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3635:12:61"},"nodeType":"YulFunctionCall","src":"3635:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3629:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3694:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3696:16:61"},"nodeType":"YulFunctionCall","src":"3696:18:61"},"nodeType":"YulExpressionStatement","src":"3696:18:61"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3670:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3674:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3667:2:61"},"nodeType":"YulFunctionCall","src":"3667:26:61"},"nodeType":"YulIf","src":"3664:52:61"},{"nodeType":"YulVariableDeclaration","src":"3725:129:61","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3768:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3772:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3764:3:61"},"nodeType":"YulFunctionCall","src":"3764:13:61"},{"kind":"number","nodeType":"YulLiteral","src":"3779:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3760:3:61"},"nodeType":"YulFunctionCall","src":"3760:86:61"},{"kind":"number","nodeType":"YulLiteral","src":"3848:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3756:3:61"},"nodeType":"YulFunctionCall","src":"3756:97:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3740:15:61"},"nodeType":"YulFunctionCall","src":"3740:114:61"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"3729:7:61","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3870:7:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3879:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3863:6:61"},"nodeType":"YulFunctionCall","src":"3863:19:61"},"nodeType":"YulExpressionStatement","src":"3863:19:61"},{"body":{"nodeType":"YulBlock","src":"3930:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3939:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3942:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3932:6:61"},"nodeType":"YulFunctionCall","src":"3932:12:61"},"nodeType":"YulExpressionStatement","src":"3932:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3905:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3913:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3901:3:61"},"nodeType":"YulFunctionCall","src":"3901:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3918:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3897:3:61"},"nodeType":"YulFunctionCall","src":"3897:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"3925:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3894:2:61"},"nodeType":"YulFunctionCall","src":"3894:35:61"},"nodeType":"YulIf","src":"3891:55:61"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3972:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"3981:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3968:3:61"},"nodeType":"YulFunctionCall","src":"3968:18:61"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3992:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4000:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3988:3:61"},"nodeType":"YulFunctionCall","src":"3988:17:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4007:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3955:12:61"},"nodeType":"YulFunctionCall","src":"3955:55:61"},"nodeType":"YulExpressionStatement","src":"3955:55:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"4034:7:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4043:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4030:3:61"},"nodeType":"YulFunctionCall","src":"4030:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"4048:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4026:3:61"},"nodeType":"YulFunctionCall","src":"4026:27:61"},{"kind":"number","nodeType":"YulLiteral","src":"4055:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4019:6:61"},"nodeType":"YulFunctionCall","src":"4019:38:61"},"nodeType":"YulExpressionStatement","src":"4019:38:61"},{"nodeType":"YulAssignment","src":"4066:16:61","value":{"name":"array_1","nodeType":"YulIdentifier","src":"4075:7:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"4066:5:61"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3525:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"3533:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3541:5:61","type":""}],"src":"3499:589:61"},{"body":{"nodeType":"YulBlock","src":"4173:1935:61","statements":[{"body":{"nodeType":"YulBlock","src":"4222:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4231:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4234:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4224:6:61"},"nodeType":"YulFunctionCall","src":"4224:12:61"},"nodeType":"YulExpressionStatement","src":"4224:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4201:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4209:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4197:3:61"},"nodeType":"YulFunctionCall","src":"4197:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"4216:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4193:3:61"},"nodeType":"YulFunctionCall","src":"4193:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4186:6:61"},"nodeType":"YulFunctionCall","src":"4186:35:61"},"nodeType":"YulIf","src":"4183:55:61"},{"nodeType":"YulVariableDeclaration","src":"4247:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4270:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4257:12:61"},"nodeType":"YulFunctionCall","src":"4257:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4251:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4286:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4296:4:61","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4290:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4309:92:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4397:2:61"}],"functionName":{"name":"array_allocation_size_array_struct_CrossChainMessageInfo_dyn","nodeType":"YulIdentifier","src":"4336:60:61"},"nodeType":"YulFunctionCall","src":"4336:64:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4320:15:61"},"nodeType":"YulFunctionCall","src":"4320:81:61"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"4313:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4410:16:61","value":{"name":"dst","nodeType":"YulIdentifier","src":"4423:3:61"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"4414:5:61","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4442:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4447:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4435:6:61"},"nodeType":"YulFunctionCall","src":"4435:15:61"},"nodeType":"YulExpressionStatement","src":"4435:15:61"},{"nodeType":"YulAssignment","src":"4459:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4470:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"4475:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4466:3:61"},"nodeType":"YulFunctionCall","src":"4466:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4459:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"4487:46:61","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4509:6:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4521:1:61","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"4524:2:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4517:3:61"},"nodeType":"YulFunctionCall","src":"4517:10:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4505:3:61"},"nodeType":"YulFunctionCall","src":"4505:23:61"},{"name":"_2","nodeType":"YulIdentifier","src":"4530:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4501:3:61"},"nodeType":"YulFunctionCall","src":"4501:32:61"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"4491:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4561:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4570:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4573:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4563:6:61"},"nodeType":"YulFunctionCall","src":"4563:12:61"},"nodeType":"YulExpressionStatement","src":"4563:12:61"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"4548:6:61"},{"name":"end","nodeType":"YulIdentifier","src":"4556:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4545:2:61"},"nodeType":"YulFunctionCall","src":"4545:15:61"},"nodeType":"YulIf","src":"4542:35:61"},{"nodeType":"YulVariableDeclaration","src":"4586:26:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4601:6:61"},{"name":"_2","nodeType":"YulIdentifier","src":"4609:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4597:3:61"},"nodeType":"YulFunctionCall","src":"4597:15:61"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"4590:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4677:1402:61","statements":[{"nodeType":"YulVariableDeclaration","src":"4691:36:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4723:3:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4710:12:61"},"nodeType":"YulFunctionCall","src":"4710:17:61"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"4695:11:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4740:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4750:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4744:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4816:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"4834:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4844:1:61","type":"","value":"0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4838:2:61","type":""}]},{"expression":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"4869:2:61"},{"name":"_4","nodeType":"YulIdentifier","src":"4873:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4862:6:61"},"nodeType":"YulFunctionCall","src":"4862:14:61"},"nodeType":"YulExpressionStatement","src":"4862:14:61"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"4787:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"4800:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4784:2:61"},"nodeType":"YulFunctionCall","src":"4784:19:61"},"nodeType":"YulIf","src":"4781:109:61"},{"nodeType":"YulVariableDeclaration","src":"4903:34:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4917:6:61"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"4925:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4913:3:61"},"nodeType":"YulFunctionCall","src":"4913:24:61"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"4907:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4950:95:61","value":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"4968:3:61"},{"name":"_5","nodeType":"YulIdentifier","src":"4973:2:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4964:3:61"},"nodeType":"YulFunctionCall","src":"4964:12:61"},{"kind":"number","nodeType":"YulLiteral","src":"4978:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4960:3:61"},"nodeType":"YulFunctionCall","src":"4960:85:61"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"4954:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5058:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"5068:4:61","type":"","value":"0xa0"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"5062:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"5112:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"5130:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"5140:1:61","type":"","value":"0"},"variables":[{"name":"_8","nodeType":"YulTypedName","src":"5134:2:61","type":""}]},{"expression":{"arguments":[{"name":"_8","nodeType":"YulIdentifier","src":"5165:2:61"},{"name":"_8","nodeType":"YulIdentifier","src":"5169:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5158:6:61"},"nodeType":"YulFunctionCall","src":"5158:14:61"},"nodeType":"YulExpressionStatement","src":"5158:14:61"}]},"condition":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"5092:2:61"},{"name":"_7","nodeType":"YulIdentifier","src":"5096:2:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5088:3:61"},"nodeType":"YulFunctionCall","src":"5088:11:61"},"nodeType":"YulIf","src":"5085:101:61"},{"nodeType":"YulVariableDeclaration","src":"5199:35:61","value":{"arguments":[],"functionName":{"name":"allocate_memory_2295","nodeType":"YulIdentifier","src":"5212:20:61"},"nodeType":"YulFunctionCall","src":"5212:22:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5203:5:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5247:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"5257:4:61","type":"","value":"0x60"},"variables":[{"name":"_9","nodeType":"YulTypedName","src":"5251:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"5301:77:61","statements":[{"nodeType":"YulVariableDeclaration","src":"5319:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"5330:1:61","type":"","value":"0"},"variables":[{"name":"_10","nodeType":"YulTypedName","src":"5323:3:61","type":""}]},{"expression":{"arguments":[{"name":"_10","nodeType":"YulIdentifier","src":"5355:3:61"},{"name":"_10","nodeType":"YulIdentifier","src":"5360:3:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5348:6:61"},"nodeType":"YulFunctionCall","src":"5348:16:61"},"nodeType":"YulExpressionStatement","src":"5348:16:61"}]},"condition":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"5281:2:61"},{"name":"_9","nodeType":"YulIdentifier","src":"5285:2:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5277:3:61"},"nodeType":"YulFunctionCall","src":"5277:11:61"},"nodeType":"YulIf","src":"5274:104:61"},{"nodeType":"YulVariableDeclaration","src":"5391:37:61","value":{"arguments":[],"functionName":{"name":"allocate_memory_2295","nodeType":"YulIdentifier","src":"5406:20:61"},"nodeType":"YulFunctionCall","src":"5406:22:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5395:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5448:7:61"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"5474:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"5478:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5470:3:61"},"nodeType":"YulFunctionCall","src":"5470:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5457:12:61"},"nodeType":"YulFunctionCall","src":"5457:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5441:6:61"},"nodeType":"YulFunctionCall","src":"5441:42:61"},"nodeType":"YulExpressionStatement","src":"5441:42:61"},{"nodeType":"YulVariableDeclaration","src":"5496:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"5507:2:61","type":"","value":"64"},"variables":[{"name":"_11","nodeType":"YulTypedName","src":"5500:3:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5533:7:61"},{"name":"_2","nodeType":"YulIdentifier","src":"5542:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5529:3:61"},"nodeType":"YulFunctionCall","src":"5529:16:61"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"5564:2:61"},{"name":"_11","nodeType":"YulIdentifier","src":"5568:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5560:3:61"},"nodeType":"YulFunctionCall","src":"5560:12:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5547:12:61"},"nodeType":"YulFunctionCall","src":"5547:26:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5522:6:61"},"nodeType":"YulFunctionCall","src":"5522:52:61"},"nodeType":"YulExpressionStatement","src":"5522:52:61"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5598:7:61"},{"name":"_11","nodeType":"YulIdentifier","src":"5607:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5594:3:61"},"nodeType":"YulFunctionCall","src":"5594:17:61"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"5630:2:61"},{"name":"_9","nodeType":"YulIdentifier","src":"5634:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5626:3:61"},"nodeType":"YulFunctionCall","src":"5626:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5613:12:61"},"nodeType":"YulFunctionCall","src":"5613:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5587:6:61"},"nodeType":"YulFunctionCall","src":"5587:52:61"},"nodeType":"YulExpressionStatement","src":"5587:52:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5659:5:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"5666:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5652:6:61"},"nodeType":"YulFunctionCall","src":"5652:22:61"},"nodeType":"YulExpressionStatement","src":"5652:22:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5698:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"5705:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5694:3:61"},"nodeType":"YulFunctionCall","src":"5694:14:61"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"5733:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"5737:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5729:3:61"},"nodeType":"YulFunctionCall","src":"5729:12:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5710:18:61"},"nodeType":"YulFunctionCall","src":"5710:32:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5687:6:61"},"nodeType":"YulFunctionCall","src":"5687:56:61"},"nodeType":"YulExpressionStatement","src":"5687:56:61"},{"nodeType":"YulVariableDeclaration","src":"5756:41:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"5789:2:61"},{"name":"_7","nodeType":"YulIdentifier","src":"5793:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5785:3:61"},"nodeType":"YulFunctionCall","src":"5785:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5772:12:61"},"nodeType":"YulFunctionCall","src":"5772:25:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5760:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"5842:77:61","statements":[{"nodeType":"YulVariableDeclaration","src":"5860:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"5871:1:61","type":"","value":"0"},"variables":[{"name":"_12","nodeType":"YulTypedName","src":"5864:3:61","type":""}]},{"expression":{"arguments":[{"name":"_12","nodeType":"YulIdentifier","src":"5896:3:61"},{"name":"_12","nodeType":"YulIdentifier","src":"5901:3:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5889:6:61"},"nodeType":"YulFunctionCall","src":"5889:16:61"},"nodeType":"YulExpressionStatement","src":"5889:16:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5816:8:61"},{"name":"_3","nodeType":"YulIdentifier","src":"5826:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5813:2:61"},"nodeType":"YulFunctionCall","src":"5813:16:61"},"nodeType":"YulIf","src":"5810:109:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5943:5:61"},{"name":"_11","nodeType":"YulIdentifier","src":"5950:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5939:3:61"},"nodeType":"YulFunctionCall","src":"5939:15:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"5981:2:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5985:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5977:3:61"},"nodeType":"YulFunctionCall","src":"5977:17:61"},{"name":"_2","nodeType":"YulIdentifier","src":"5996:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5973:3:61"},"nodeType":"YulFunctionCall","src":"5973:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"6001:3:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5956:16:61"},"nodeType":"YulFunctionCall","src":"5956:49:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5932:6:61"},"nodeType":"YulFunctionCall","src":"5932:74:61"},"nodeType":"YulExpressionStatement","src":"5932:74:61"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6026:3:61"},{"name":"value","nodeType":"YulIdentifier","src":"6031:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6019:6:61"},"nodeType":"YulFunctionCall","src":"6019:18:61"},"nodeType":"YulExpressionStatement","src":"6019:18:61"},{"nodeType":"YulAssignment","src":"6050:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6061:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"6066:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6057:3:61"},"nodeType":"YulFunctionCall","src":"6057:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"6050:3:61"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4632:3:61"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"4637:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4629:2:61"},"nodeType":"YulFunctionCall","src":"4629:15:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4645:23:61","statements":[{"nodeType":"YulAssignment","src":"4647:19:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4658:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"4663:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4654:3:61"},"nodeType":"YulFunctionCall","src":"4654:12:61"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"4647:3:61"}]}]},"pre":{"nodeType":"YulBlock","src":"4625:3:61","statements":[]},"src":"4621:1458:61"},{"nodeType":"YulAssignment","src":"6088:14:61","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"6097:5:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"6088:5:61"}]}]},"name":"abi_decode_array_struct_RegistrationInfo_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4147:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"4155:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"4163:5:61","type":""}],"src":"4093:2015:61"},{"body":{"nodeType":"YulBlock","src":"6340:1558:61","statements":[{"nodeType":"YulVariableDeclaration","src":"6350:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"6360:2:61","type":"","value":"96"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6354:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"6407:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6416:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6419:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6409:6:61"},"nodeType":"YulFunctionCall","src":"6409:12:61"},"nodeType":"YulExpressionStatement","src":"6409:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6382:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"6391:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6378:3:61"},"nodeType":"YulFunctionCall","src":"6378:23:61"},{"name":"_1","nodeType":"YulIdentifier","src":"6403:2:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6374:3:61"},"nodeType":"YulFunctionCall","src":"6374:32:61"},"nodeType":"YulIf","src":"6371:52:61"},{"nodeType":"YulAssignment","src":"6432:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6455:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6442:12:61"},"nodeType":"YulFunctionCall","src":"6442:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6432:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"6474:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"6484:2:61","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6478:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6495:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6526:9:61"},{"name":"_2","nodeType":"YulIdentifier","src":"6537:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6522:3:61"},"nodeType":"YulFunctionCall","src":"6522:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6509:12:61"},"nodeType":"YulFunctionCall","src":"6509:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6499:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6550:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"6560:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"6554:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"6605:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6614:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6617:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6607:6:61"},"nodeType":"YulFunctionCall","src":"6607:12:61"},"nodeType":"YulExpressionStatement","src":"6607:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6593:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"6601:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6590:2:61"},"nodeType":"YulFunctionCall","src":"6590:14:61"},"nodeType":"YulIf","src":"6587:34:61"},{"nodeType":"YulVariableDeclaration","src":"6630:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6644:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"6655:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6640:3:61"},"nodeType":"YulFunctionCall","src":"6640:22:61"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"6634:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"6710:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6719:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6722:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6712:6:61"},"nodeType":"YulFunctionCall","src":"6712:12:61"},"nodeType":"YulExpressionStatement","src":"6712:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"6689:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"6693:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6685:3:61"},"nodeType":"YulFunctionCall","src":"6685:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6700:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6681:3:61"},"nodeType":"YulFunctionCall","src":"6681:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6674:6:61"},"nodeType":"YulFunctionCall","src":"6674:35:61"},"nodeType":"YulIf","src":"6671:55:61"},{"nodeType":"YulVariableDeclaration","src":"6735:26:61","value":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"6758:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6745:12:61"},"nodeType":"YulFunctionCall","src":"6745:16:61"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"6739:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6770:92:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"6858:2:61"}],"functionName":{"name":"array_allocation_size_array_struct_CrossChainMessageInfo_dyn","nodeType":"YulIdentifier","src":"6797:60:61"},"nodeType":"YulFunctionCall","src":"6797:64:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6781:15:61"},"nodeType":"YulFunctionCall","src":"6781:81:61"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"6774:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6871:16:61","value":{"name":"dst","nodeType":"YulIdentifier","src":"6884:3:61"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"6875:5:61","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6903:3:61"},{"name":"_5","nodeType":"YulIdentifier","src":"6908:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6896:6:61"},"nodeType":"YulFunctionCall","src":"6896:15:61"},"nodeType":"YulExpressionStatement","src":"6896:15:61"},{"nodeType":"YulAssignment","src":"6920:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6931:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"6936:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6927:3:61"},"nodeType":"YulFunctionCall","src":"6927:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"6920:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"6948:43:61","value":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"6970:2:61"},{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"6978:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"6982:2:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6974:3:61"},"nodeType":"YulFunctionCall","src":"6974:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6966:3:61"},"nodeType":"YulFunctionCall","src":"6966:20:61"},{"name":"_2","nodeType":"YulIdentifier","src":"6988:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6962:3:61"},"nodeType":"YulFunctionCall","src":"6962:29:61"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"6952:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"7023:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7032:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7035:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7025:6:61"},"nodeType":"YulFunctionCall","src":"7025:12:61"},"nodeType":"YulExpressionStatement","src":"7025:12:61"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"7006:6:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7014:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7003:2:61"},"nodeType":"YulFunctionCall","src":"7003:19:61"},"nodeType":"YulIf","src":"7000:39:61"},{"nodeType":"YulVariableDeclaration","src":"7048:22:61","value":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"7063:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"7067:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7059:3:61"},"nodeType":"YulFunctionCall","src":"7059:11:61"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"7052:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"7135:533:61","statements":[{"body":{"nodeType":"YulBlock","src":"7191:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"7209:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"7219:1:61","type":"","value":"0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"7213:2:61","type":""}]},{"expression":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"7244:2:61"},{"name":"_6","nodeType":"YulIdentifier","src":"7248:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7237:6:61"},"nodeType":"YulFunctionCall","src":"7237:14:61"},"nodeType":"YulExpressionStatement","src":"7237:14:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7160:7:61"},{"name":"src","nodeType":"YulIdentifier","src":"7169:3:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7156:3:61"},"nodeType":"YulFunctionCall","src":"7156:17:61"},{"name":"_1","nodeType":"YulIdentifier","src":"7175:2:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7152:3:61"},"nodeType":"YulFunctionCall","src":"7152:26:61"},"nodeType":"YulIf","src":"7149:116:61"},{"nodeType":"YulVariableDeclaration","src":"7278:35:61","value":{"arguments":[],"functionName":{"name":"allocate_memory_2297","nodeType":"YulIdentifier","src":"7291:20:61"},"nodeType":"YulFunctionCall","src":"7291:22:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7282:5:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7326:32:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7354:3:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7341:12:61"},"nodeType":"YulFunctionCall","src":"7341:17:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7330:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7396:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7371:24:61"},"nodeType":"YulFunctionCall","src":"7371:33:61"},"nodeType":"YulExpressionStatement","src":"7371:33:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7424:5:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"7431:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7417:6:61"},"nodeType":"YulFunctionCall","src":"7417:22:61"},"nodeType":"YulExpressionStatement","src":"7417:22:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7463:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"7470:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7459:3:61"},"nodeType":"YulFunctionCall","src":"7459:14:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7497:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"7502:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7493:3:61"},"nodeType":"YulFunctionCall","src":"7493:12:61"}],"functionName":{"name":"abi_decode_uint32","nodeType":"YulIdentifier","src":"7475:17:61"},"nodeType":"YulFunctionCall","src":"7475:31:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7452:6:61"},"nodeType":"YulFunctionCall","src":"7452:55:61"},"nodeType":"YulExpressionStatement","src":"7452:55:61"},{"nodeType":"YulVariableDeclaration","src":"7520:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"7530:2:61","type":"","value":"64"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"7524:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7556:5:61"},{"name":"_7","nodeType":"YulIdentifier","src":"7563:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7552:3:61"},"nodeType":"YulFunctionCall","src":"7552:14:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7585:3:61"},{"name":"_7","nodeType":"YulIdentifier","src":"7590:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7581:3:61"},"nodeType":"YulFunctionCall","src":"7581:12:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7568:12:61"},"nodeType":"YulFunctionCall","src":"7568:26:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7545:6:61"},"nodeType":"YulFunctionCall","src":"7545:50:61"},"nodeType":"YulExpressionStatement","src":"7545:50:61"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7615:3:61"},{"name":"value","nodeType":"YulIdentifier","src":"7620:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7608:6:61"},"nodeType":"YulFunctionCall","src":"7608:18:61"},"nodeType":"YulExpressionStatement","src":"7608:18:61"},{"nodeType":"YulAssignment","src":"7639:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7650:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"7655:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7646:3:61"},"nodeType":"YulFunctionCall","src":"7646:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"7639:3:61"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7090:3:61"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"7095:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7087:2:61"},"nodeType":"YulFunctionCall","src":"7087:15:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7103:23:61","statements":[{"nodeType":"YulAssignment","src":"7105:19:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7116:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"7121:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7112:3:61"},"nodeType":"YulFunctionCall","src":"7112:12:61"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"7105:3:61"}]}]},"pre":{"nodeType":"YulBlock","src":"7083:3:61","statements":[]},"src":"7079:589:61"},{"nodeType":"YulAssignment","src":"7677:15:61","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"7687:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7677:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"7701:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7734:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7745:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7730:3:61"},"nodeType":"YulFunctionCall","src":"7730:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7717:12:61"},"nodeType":"YulFunctionCall","src":"7717:32:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7705:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"7778:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7787:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7790:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7780:6:61"},"nodeType":"YulFunctionCall","src":"7780:12:61"},"nodeType":"YulExpressionStatement","src":"7780:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7764:8:61"},{"name":"_3","nodeType":"YulIdentifier","src":"7774:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7761:2:61"},"nodeType":"YulFunctionCall","src":"7761:16:61"},"nodeType":"YulIf","src":"7758:36:61"},{"nodeType":"YulAssignment","src":"7803:89:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7862:9:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7873:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7858:3:61"},"nodeType":"YulFunctionCall","src":"7858:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7884:7:61"}],"functionName":{"name":"abi_decode_array_struct_RegistrationInfo_dyn","nodeType":"YulIdentifier","src":"7813:44:61"},"nodeType":"YulFunctionCall","src":"7813:79:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7803:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_array$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$dyn_memory_ptrt_array$_t_struct$_RegistrationInfo_$5575_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6290:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6301:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6313:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6321:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6329:6:61","type":""}],"src":"6113:1785:61"},{"body":{"nodeType":"YulBlock","src":"7990:228:61","statements":[{"body":{"nodeType":"YulBlock","src":"8036:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8045:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8048:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8038:6:61"},"nodeType":"YulFunctionCall","src":"8038:12:61"},"nodeType":"YulExpressionStatement","src":"8038:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8011:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"8020:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8007:3:61"},"nodeType":"YulFunctionCall","src":"8007:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"8032:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8003:3:61"},"nodeType":"YulFunctionCall","src":"8003:32:61"},"nodeType":"YulIf","src":"8000:52:61"},{"nodeType":"YulAssignment","src":"8061:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8084:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8071:12:61"},"nodeType":"YulFunctionCall","src":"8071:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8061:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"8103:45:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8133:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8144:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8129:3:61"},"nodeType":"YulFunctionCall","src":"8129:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8116:12:61"},"nodeType":"YulFunctionCall","src":"8116:32:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8107:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8182:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8157:24:61"},"nodeType":"YulFunctionCall","src":"8157:31:61"},"nodeType":"YulExpressionStatement","src":"8157:31:61"},{"nodeType":"YulAssignment","src":"8197:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"8207:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8197:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7948:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7959:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7971:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7979:6:61","type":""}],"src":"7903:315:61"},{"body":{"nodeType":"YulBlock","src":"8326:357:61","statements":[{"body":{"nodeType":"YulBlock","src":"8372:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8381:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8384:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8374:6:61"},"nodeType":"YulFunctionCall","src":"8374:12:61"},"nodeType":"YulExpressionStatement","src":"8374:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8347:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"8356:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8343:3:61"},"nodeType":"YulFunctionCall","src":"8343:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"8368:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8339:3:61"},"nodeType":"YulFunctionCall","src":"8339:32:61"},"nodeType":"YulIf","src":"8336:52:61"},{"nodeType":"YulVariableDeclaration","src":"8397:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8423:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8410:12:61"},"nodeType":"YulFunctionCall","src":"8410:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8401:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8467:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8442:24:61"},"nodeType":"YulFunctionCall","src":"8442:31:61"},"nodeType":"YulExpressionStatement","src":"8442:31:61"},{"nodeType":"YulAssignment","src":"8482:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"8492:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8482:6:61"}]},{"nodeType":"YulAssignment","src":"8506:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8538:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8549:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8534:3:61"},"nodeType":"YulFunctionCall","src":"8534:18:61"}],"functionName":{"name":"abi_decode_uint32","nodeType":"YulIdentifier","src":"8516:17:61"},"nodeType":"YulFunctionCall","src":"8516:37:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8506:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"8562:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8594:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8605:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8590:3:61"},"nodeType":"YulFunctionCall","src":"8590:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8577:12:61"},"nodeType":"YulFunctionCall","src":"8577:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8566:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8643:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8618:24:61"},"nodeType":"YulFunctionCall","src":"8618:33:61"},"nodeType":"YulExpressionStatement","src":"8618:33:61"},{"nodeType":"YulAssignment","src":"8660:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"8670:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8660:6:61"}]}]},"name":"abi_decode_tuple_t_addresst_uint32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8276:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8287:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8299:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8307:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8315:6:61","type":""}],"src":"8223:460:61"},{"body":{"nodeType":"YulBlock","src":"8758:177:61","statements":[{"body":{"nodeType":"YulBlock","src":"8804:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8813:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8816:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8806:6:61"},"nodeType":"YulFunctionCall","src":"8806:12:61"},"nodeType":"YulExpressionStatement","src":"8806:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8779:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"8788:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8775:3:61"},"nodeType":"YulFunctionCall","src":"8775:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"8800:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8771:3:61"},"nodeType":"YulFunctionCall","src":"8771:32:61"},"nodeType":"YulIf","src":"8768:52:61"},{"nodeType":"YulVariableDeclaration","src":"8829:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8855:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8842:12:61"},"nodeType":"YulFunctionCall","src":"8842:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8833:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8899:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8874:24:61"},"nodeType":"YulFunctionCall","src":"8874:31:61"},"nodeType":"YulExpressionStatement","src":"8874:31:61"},{"nodeType":"YulAssignment","src":"8914:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"8924:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8914:6:61"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8724:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8735:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8747:6:61","type":""}],"src":"8688:247:61"},{"body":{"nodeType":"YulBlock","src":"9114:232:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9131:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9142:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9124:6:61"},"nodeType":"YulFunctionCall","src":"9124:21:61"},"nodeType":"YulExpressionStatement","src":"9124:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9165:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9176:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9161:3:61"},"nodeType":"YulFunctionCall","src":"9161:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"9181:2:61","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9154:6:61"},"nodeType":"YulFunctionCall","src":"9154:30:61"},"nodeType":"YulExpressionStatement","src":"9154:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9204:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9215:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9200:3:61"},"nodeType":"YulFunctionCall","src":"9200:18:61"},{"hexValue":"4368756753706c617368436c61696d65723a2063616c6c6572206e6f74206f72","kind":"string","nodeType":"YulLiteral","src":"9220:34:61","type":"","value":"ChugSplashClaimer: caller not or"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9193:6:61"},"nodeType":"YulFunctionCall","src":"9193:62:61"},"nodeType":"YulExpressionStatement","src":"9193:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9275:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9286:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9271:3:61"},"nodeType":"YulFunctionCall","src":"9271:18:61"},{"hexValue":"67204944206f776e6572","kind":"string","nodeType":"YulLiteral","src":"9291:12:61","type":"","value":"g ID owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9264:6:61"},"nodeType":"YulFunctionCall","src":"9264:40:61"},"nodeType":"YulExpressionStatement","src":"9264:40:61"},{"nodeType":"YulAssignment","src":"9313:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9325:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9336:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9321:3:61"},"nodeType":"YulFunctionCall","src":"9321:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9313:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_640f34a928259f01608f46baf73a4cd239bf35ab13e80fbd1e6fedcbc59513b7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9091:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9105:4:61","type":""}],"src":"8940:406:61"},{"body":{"nodeType":"YulBlock","src":"9525:228:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9542:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9553:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9535:6:61"},"nodeType":"YulFunctionCall","src":"9535:21:61"},"nodeType":"YulExpressionStatement","src":"9535:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9576:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9587:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9572:3:61"},"nodeType":"YulFunctionCall","src":"9572:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"9592:2:61","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9565:6:61"},"nodeType":"YulFunctionCall","src":"9565:30:61"},"nodeType":"YulExpressionStatement","src":"9565:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9615:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9626:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9611:3:61"},"nodeType":"YulFunctionCall","src":"9611:18:61"},{"hexValue":"4368756753706c617368436c61696d65723a2063616c6c6572206e6f74206170","kind":"string","nodeType":"YulLiteral","src":"9631:34:61","type":"","value":"ChugSplashClaimer: caller not ap"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9604:6:61"},"nodeType":"YulFunctionCall","src":"9604:62:61"},"nodeType":"YulExpressionStatement","src":"9604:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9686:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9697:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9682:3:61"},"nodeType":"YulFunctionCall","src":"9682:18:61"},{"hexValue":"70726f766564","kind":"string","nodeType":"YulLiteral","src":"9702:8:61","type":"","value":"proved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9675:6:61"},"nodeType":"YulFunctionCall","src":"9675:36:61"},"nodeType":"YulExpressionStatement","src":"9675:36:61"},{"nodeType":"YulAssignment","src":"9720:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9732:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9743:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9728:3:61"},"nodeType":"YulFunctionCall","src":"9728:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9720:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_cba8bd74eece2738fbff49633c8300e0cb2d7ddd2fcffa7383cd914f0853966e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9502:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9516:4:61","type":""}],"src":"9351:402:61"},{"body":{"nodeType":"YulBlock","src":"9790:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9807:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9810:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9800:6:61"},"nodeType":"YulFunctionCall","src":"9800:88:61"},"nodeType":"YulExpressionStatement","src":"9800:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9904:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9907:4:61","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9897:6:61"},"nodeType":"YulFunctionCall","src":"9897:15:61"},"nodeType":"YulExpressionStatement","src":"9897:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9928:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9931:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9921:6:61"},"nodeType":"YulFunctionCall","src":"9921:15:61"},"nodeType":"YulExpressionStatement","src":"9921:15:61"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"9758:184:61"},{"body":{"nodeType":"YulBlock","src":"10104:162:61","statements":[{"nodeType":"YulAssignment","src":"10114:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10126:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10137:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10122:3:61"},"nodeType":"YulFunctionCall","src":"10122:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10114:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10156:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"10167:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10149:6:61"},"nodeType":"YulFunctionCall","src":"10149:25:61"},"nodeType":"YulExpressionStatement","src":"10149:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10194:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10205:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10190:3:61"},"nodeType":"YulFunctionCall","src":"10190:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"10210:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10183:6:61"},"nodeType":"YulFunctionCall","src":"10183:34:61"},"nodeType":"YulExpressionStatement","src":"10183:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10237:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10248:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10233:3:61"},"nodeType":"YulFunctionCall","src":"10233:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"10253:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10226:6:61"},"nodeType":"YulFunctionCall","src":"10226:34:61"},"nodeType":"YulExpressionStatement","src":"10226:34:61"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10057:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10068:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10076:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10084:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10095:4:61","type":""}],"src":"9947:319:61"},{"body":{"nodeType":"YulBlock","src":"10352:170:61","statements":[{"body":{"nodeType":"YulBlock","src":"10398:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10407:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10410:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10400:6:61"},"nodeType":"YulFunctionCall","src":"10400:12:61"},"nodeType":"YulExpressionStatement","src":"10400:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10373:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"10382:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10369:3:61"},"nodeType":"YulFunctionCall","src":"10369:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"10394:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10365:3:61"},"nodeType":"YulFunctionCall","src":"10365:32:61"},"nodeType":"YulIf","src":"10362:52:61"},{"nodeType":"YulVariableDeclaration","src":"10423:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10442:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10436:5:61"},"nodeType":"YulFunctionCall","src":"10436:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10427:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10486:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10461:24:61"},"nodeType":"YulFunctionCall","src":"10461:31:61"},"nodeType":"YulExpressionStatement","src":"10461:31:61"},{"nodeType":"YulAssignment","src":"10501:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"10511:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10501:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10318:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10329:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10341:6:61","type":""}],"src":"10271:251:61"},{"body":{"nodeType":"YulBlock","src":"10605:167:61","statements":[{"body":{"nodeType":"YulBlock","src":"10651:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10660:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10663:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10653:6:61"},"nodeType":"YulFunctionCall","src":"10653:12:61"},"nodeType":"YulExpressionStatement","src":"10653:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10626:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"10635:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10622:3:61"},"nodeType":"YulFunctionCall","src":"10622:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"10647:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10618:3:61"},"nodeType":"YulFunctionCall","src":"10618:32:61"},"nodeType":"YulIf","src":"10615:52:61"},{"nodeType":"YulVariableDeclaration","src":"10676:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10695:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10689:5:61"},"nodeType":"YulFunctionCall","src":"10689:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10680:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10736:5:61"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"10714:21:61"},"nodeType":"YulFunctionCall","src":"10714:28:61"},"nodeType":"YulExpressionStatement","src":"10714:28:61"},{"nodeType":"YulAssignment","src":"10751:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"10761:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10751:6:61"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10571:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10582:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10594:6:61","type":""}],"src":"10527:245:61"},{"body":{"nodeType":"YulBlock","src":"10951:232:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10968:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10979:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10961:6:61"},"nodeType":"YulFunctionCall","src":"10961:21:61"},"nodeType":"YulExpressionStatement","src":"10961:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11002:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11013:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10998:3:61"},"nodeType":"YulFunctionCall","src":"10998:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"11018:2:61","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10991:6:61"},"nodeType":"YulFunctionCall","src":"10991:30:61"},"nodeType":"YulExpressionStatement","src":"10991:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11041:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11052:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11037:3:61"},"nodeType":"YulFunctionCall","src":"11037:18:61"},{"hexValue":"4368756753706c617368436c61696d65723a20696e76616c6964206d616e6167","kind":"string","nodeType":"YulLiteral","src":"11057:34:61","type":"","value":"ChugSplashClaimer: invalid manag"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11030:6:61"},"nodeType":"YulFunctionCall","src":"11030:62:61"},"nodeType":"YulExpressionStatement","src":"11030:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11112:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11123:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11108:3:61"},"nodeType":"YulFunctionCall","src":"11108:18:61"},{"hexValue":"65722076657273696f6e","kind":"string","nodeType":"YulLiteral","src":"11128:12:61","type":"","value":"er version"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11101:6:61"},"nodeType":"YulFunctionCall","src":"11101:40:61"},"nodeType":"YulExpressionStatement","src":"11101:40:61"},{"nodeType":"YulAssignment","src":"11150:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11162:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11173:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11158:3:61"},"nodeType":"YulFunctionCall","src":"11158:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11150:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_d9c081a9dea8ed12ff75f290a05f238b5a259f42a155230111212312ff46e356__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10928:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10942:4:61","type":""}],"src":"10777:406:61"},{"body":{"nodeType":"YulBlock","src":"11362:235:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11379:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11390:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11372:6:61"},"nodeType":"YulFunctionCall","src":"11372:21:61"},"nodeType":"YulExpressionStatement","src":"11372:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11413:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11424:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11409:3:61"},"nodeType":"YulFunctionCall","src":"11409:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"11429:2:61","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11402:6:61"},"nodeType":"YulFunctionCall","src":"11402:30:61"},"nodeType":"YulExpressionStatement","src":"11402:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11452:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11463:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11448:3:61"},"nodeType":"YulFunctionCall","src":"11448:18:61"},{"hexValue":"4368756753706c617368436c61696d65723a20696e76616c69642063726f7373","kind":"string","nodeType":"YulLiteral","src":"11468:34:61","type":"","value":"ChugSplashClaimer: invalid cross"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11441:6:61"},"nodeType":"YulFunctionCall","src":"11441:62:61"},"nodeType":"YulExpressionStatement","src":"11441:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11523:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11534:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11519:3:61"},"nodeType":"YulFunctionCall","src":"11519:18:61"},{"hexValue":"436861696e2061646170746572","kind":"string","nodeType":"YulLiteral","src":"11539:15:61","type":"","value":"Chain adapter"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11512:6:61"},"nodeType":"YulFunctionCall","src":"11512:43:61"},"nodeType":"YulExpressionStatement","src":"11512:43:61"},{"nodeType":"YulAssignment","src":"11564:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11576:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11587:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11572:3:61"},"nodeType":"YulFunctionCall","src":"11572:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11564:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_dad25f4d162c720300d3a9513948bbfa9b12f4dfb9d21b85f9f818a36cfea887__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11339:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11353:4:61","type":""}],"src":"11188:409:61"},{"body":{"nodeType":"YulBlock","src":"11655:205:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11665:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"11674:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11669:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"11734:63:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"11759:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"11764:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11755:3:61"},"nodeType":"YulFunctionCall","src":"11755:11:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11778:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"11783:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11774:3:61"},"nodeType":"YulFunctionCall","src":"11774:11:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11768:5:61"},"nodeType":"YulFunctionCall","src":"11768:18:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11748:6:61"},"nodeType":"YulFunctionCall","src":"11748:39:61"},"nodeType":"YulExpressionStatement","src":"11748:39:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11695:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"11698:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11692:2:61"},"nodeType":"YulFunctionCall","src":"11692:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11706:19:61","statements":[{"nodeType":"YulAssignment","src":"11708:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11717:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"11720:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11713:3:61"},"nodeType":"YulFunctionCall","src":"11713:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"11708:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"11688:3:61","statements":[]},"src":"11684:113:61"},{"body":{"nodeType":"YulBlock","src":"11823:31:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"11836:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"11841:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11832:3:61"},"nodeType":"YulFunctionCall","src":"11832:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"11850:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11825:6:61"},"nodeType":"YulFunctionCall","src":"11825:27:61"},"nodeType":"YulExpressionStatement","src":"11825:27:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11812:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"11815:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11809:2:61"},"nodeType":"YulFunctionCall","src":"11809:13:61"},"nodeType":"YulIf","src":"11806:48:61"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"11633:3:61","type":""},{"name":"dst","nodeType":"YulTypedName","src":"11638:3:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"11643:6:61","type":""}],"src":"11602:258:61"},{"body":{"nodeType":"YulBlock","src":"11930:219:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11947:3:61"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11962:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11956:5:61"},"nodeType":"YulFunctionCall","src":"11956:12:61"},{"kind":"number","nodeType":"YulLiteral","src":"11970:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11952:3:61"},"nodeType":"YulFunctionCall","src":"11952:61:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11940:6:61"},"nodeType":"YulFunctionCall","src":"11940:74:61"},"nodeType":"YulExpressionStatement","src":"11940:74:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12034:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"12039:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12030:3:61"},"nodeType":"YulFunctionCall","src":"12030:14:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12060:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"12067:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12056:3:61"},"nodeType":"YulFunctionCall","src":"12056:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12050:5:61"},"nodeType":"YulFunctionCall","src":"12050:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"12075:10:61","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12046:3:61"},"nodeType":"YulFunctionCall","src":"12046:40:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12023:6:61"},"nodeType":"YulFunctionCall","src":"12023:64:61"},"nodeType":"YulExpressionStatement","src":"12023:64:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12107:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"12112:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12103:3:61"},"nodeType":"YulFunctionCall","src":"12103:14:61"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12129:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"12136:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12125:3:61"},"nodeType":"YulFunctionCall","src":"12125:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12119:5:61"},"nodeType":"YulFunctionCall","src":"12119:23:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12096:6:61"},"nodeType":"YulFunctionCall","src":"12096:47:61"},"nodeType":"YulExpressionStatement","src":"12096:47:61"}]},"name":"abi_encode_struct_CrossChainMessageInfo","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11914:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11921:3:61","type":""}],"src":"11865:284:61"},{"body":{"nodeType":"YulBlock","src":"12457:874:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12474:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"12485:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12467:6:61"},"nodeType":"YulFunctionCall","src":"12467:25:61"},"nodeType":"YulExpressionStatement","src":"12467:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12512:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12523:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12508:3:61"},"nodeType":"YulFunctionCall","src":"12508:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"12528:3:61","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12501:6:61"},"nodeType":"YulFunctionCall","src":"12501:31:61"},"nodeType":"YulExpressionStatement","src":"12501:31:61"},{"nodeType":"YulVariableDeclaration","src":"12541:23:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12557:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12551:5:61"},"nodeType":"YulFunctionCall","src":"12551:13:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12545:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12584:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12595:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12580:3:61"},"nodeType":"YulFunctionCall","src":"12580:19:61"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12607:2:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12601:5:61"},"nodeType":"YulFunctionCall","src":"12601:9:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12573:6:61"},"nodeType":"YulFunctionCall","src":"12573:38:61"},"nodeType":"YulExpressionStatement","src":"12573:38:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12631:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12642:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12627:3:61"},"nodeType":"YulFunctionCall","src":"12627:19:61"},{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12658:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"12662:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12654:3:61"},"nodeType":"YulFunctionCall","src":"12654:11:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12648:5:61"},"nodeType":"YulFunctionCall","src":"12648:18:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12620:6:61"},"nodeType":"YulFunctionCall","src":"12620:47:61"},"nodeType":"YulExpressionStatement","src":"12620:47:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12687:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12698:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12683:3:61"},"nodeType":"YulFunctionCall","src":"12683:19:61"},{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12714:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"12718:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12710:3:61"},"nodeType":"YulFunctionCall","src":"12710:13:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12704:5:61"},"nodeType":"YulFunctionCall","src":"12704:20:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12676:6:61"},"nodeType":"YulFunctionCall","src":"12676:49:61"},"nodeType":"YulExpressionStatement","src":"12676:49:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12745:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12756:3:61","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12741:3:61"},"nodeType":"YulFunctionCall","src":"12741:19:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12776:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"12784:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12772:3:61"},"nodeType":"YulFunctionCall","src":"12772:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12766:5:61"},"nodeType":"YulFunctionCall","src":"12766:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"12790:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12762:3:61"},"nodeType":"YulFunctionCall","src":"12762:71:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12734:6:61"},"nodeType":"YulFunctionCall","src":"12734:100:61"},"nodeType":"YulExpressionStatement","src":"12734:100:61"},{"nodeType":"YulVariableDeclaration","src":"12843:44:61","value":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12873:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"12881:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12869:3:61"},"nodeType":"YulFunctionCall","src":"12869:17:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12863:5:61"},"nodeType":"YulFunctionCall","src":"12863:24:61"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"12847:12:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12907:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12918:3:61","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12903:3:61"},"nodeType":"YulFunctionCall","src":"12903:19:61"},{"kind":"number","nodeType":"YulLiteral","src":"12924:3:61","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12896:6:61"},"nodeType":"YulFunctionCall","src":"12896:32:61"},"nodeType":"YulExpressionStatement","src":"12896:32:61"},{"nodeType":"YulVariableDeclaration","src":"12937:33:61","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"12957:12:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12951:5:61"},"nodeType":"YulFunctionCall","src":"12951:19:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12941:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12990:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13001:3:61","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12986:3:61"},"nodeType":"YulFunctionCall","src":"12986:19:61"},{"name":"length","nodeType":"YulIdentifier","src":"13007:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12979:6:61"},"nodeType":"YulFunctionCall","src":"12979:35:61"},"nodeType":"YulExpressionStatement","src":"12979:35:61"},{"nodeType":"YulVariableDeclaration","src":"13023:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13033:3:61","type":"","value":"352"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"13027:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"13071:12:61"},{"kind":"number","nodeType":"YulLiteral","src":"13085:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13067:3:61"},"nodeType":"YulFunctionCall","src":"13067:21:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13094:9:61"},{"name":"_2","nodeType":"YulIdentifier","src":"13105:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13090:3:61"},"nodeType":"YulFunctionCall","src":"13090:18:61"},{"name":"length","nodeType":"YulIdentifier","src":"13110:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"13045:21:61"},"nodeType":"YulFunctionCall","src":"13045:72:61"},"nodeType":"YulExpressionStatement","src":"13045:72:61"},{"nodeType":"YulAssignment","src":"13126:121:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13142:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13161:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"13169:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13157:3:61"},"nodeType":"YulFunctionCall","src":"13157:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"13174:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13153:3:61"},"nodeType":"YulFunctionCall","src":"13153:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13138:3:61"},"nodeType":"YulFunctionCall","src":"13138:104:61"},{"name":"_2","nodeType":"YulIdentifier","src":"13244:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13134:3:61"},"nodeType":"YulFunctionCall","src":"13134:113:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13126:4:61"}]},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13296:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13308:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13319:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13304:3:61"},"nodeType":"YulFunctionCall","src":"13304:20:61"}],"functionName":{"name":"abi_encode_struct_CrossChainMessageInfo","nodeType":"YulIdentifier","src":"13256:39:61"},"nodeType":"YulFunctionCall","src":"13256:69:61"},"nodeType":"YulExpressionStatement","src":"13256:69:61"}]},"name":"abi_encode_tuple_t_bytes32_t_struct$_RegistrationInfo_$5575_memory_ptr_t_struct$_CrossChainMessageInfo_$5560_memory_ptr__to_t_bytes32_t_struct$_RegistrationInfo_$5575_memory_ptr_t_struct$_CrossChainMessageInfo_$5560_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12410:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12421:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12429:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12437:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12448:4:61","type":""}],"src":"12154:1177:61"},{"body":{"nodeType":"YulBlock","src":"13473:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"13483:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13503:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13497:5:61"},"nodeType":"YulFunctionCall","src":"13497:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"13487:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13545:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"13553:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13541:3:61"},"nodeType":"YulFunctionCall","src":"13541:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"13560:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"13565:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"13519:21:61"},"nodeType":"YulFunctionCall","src":"13519:53:61"},"nodeType":"YulExpressionStatement","src":"13519:53:61"},{"nodeType":"YulAssignment","src":"13581:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13592:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"13597:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13588:3:61"},"nodeType":"YulFunctionCall","src":"13588:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13581:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13449:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13454:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13465:3:61","type":""}],"src":"13336:274:61"},{"body":{"nodeType":"YulBlock","src":"13789:240:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13806:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13817:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13799:6:61"},"nodeType":"YulFunctionCall","src":"13799:21:61"},"nodeType":"YulExpressionStatement","src":"13799:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13840:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13851:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13836:3:61"},"nodeType":"YulFunctionCall","src":"13836:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"13856:2:61","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13829:6:61"},"nodeType":"YulFunctionCall","src":"13829:30:61"},"nodeType":"YulExpressionStatement","src":"13829:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13879:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13890:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13875:3:61"},"nodeType":"YulFunctionCall","src":"13875:18:61"},{"hexValue":"4368756753706c617368436c61696d65723a206661696c656420746f20696e69","kind":"string","nodeType":"YulLiteral","src":"13895:34:61","type":"","value":"ChugSplashClaimer: failed to ini"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13868:6:61"},"nodeType":"YulFunctionCall","src":"13868:62:61"},"nodeType":"YulExpressionStatement","src":"13868:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13950:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"13961:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13946:3:61"},"nodeType":"YulFunctionCall","src":"13946:18:61"},{"hexValue":"746961746520726567697374726174696f6e","kind":"string","nodeType":"YulLiteral","src":"13966:20:61","type":"","value":"tiate registration"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13939:6:61"},"nodeType":"YulFunctionCall","src":"13939:48:61"},"nodeType":"YulExpressionStatement","src":"13939:48:61"},{"nodeType":"YulAssignment","src":"13996:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14008:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14019:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14004:3:61"},"nodeType":"YulFunctionCall","src":"14004:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13996:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_c0474ff842f36dbc33ed4df1f325b5f3b9519e950f0cc89458a27a13ba1a4704__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13766:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13780:4:61","type":""}],"src":"13615:414:61"},{"body":{"nodeType":"YulBlock","src":"14163:198:61","statements":[{"nodeType":"YulAssignment","src":"14173:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14185:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14196:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14181:3:61"},"nodeType":"YulFunctionCall","src":"14181:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14173:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"14208:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"14218:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14212:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14276:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14291:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"14299:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14287:3:61"},"nodeType":"YulFunctionCall","src":"14287:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14269:6:61"},"nodeType":"YulFunctionCall","src":"14269:34:61"},"nodeType":"YulExpressionStatement","src":"14269:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14323:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14334:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14319:3:61"},"nodeType":"YulFunctionCall","src":"14319:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14343:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"14351:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14339:3:61"},"nodeType":"YulFunctionCall","src":"14339:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14312:6:61"},"nodeType":"YulFunctionCall","src":"14312:43:61"},"nodeType":"YulExpressionStatement","src":"14312:43:61"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14124:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14135:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14143:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14154:4:61","type":""}],"src":"14034:327:61"},{"body":{"nodeType":"YulBlock","src":"14413:302:61","statements":[{"body":{"nodeType":"YulBlock","src":"14512:168:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14533:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14536:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14526:6:61"},"nodeType":"YulFunctionCall","src":"14526:88:61"},"nodeType":"YulExpressionStatement","src":"14526:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14634:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14637:4:61","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14627:6:61"},"nodeType":"YulFunctionCall","src":"14627:15:61"},"nodeType":"YulExpressionStatement","src":"14627:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14662:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14665:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14655:6:61"},"nodeType":"YulFunctionCall","src":"14655:15:61"},"nodeType":"YulExpressionStatement","src":"14655:15:61"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14429:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"14436:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14426:2:61"},"nodeType":"YulFunctionCall","src":"14426:77:61"},"nodeType":"YulIf","src":"14423:257:61"},{"nodeType":"YulAssignment","src":"14689:20:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14700:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"14707:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14696:3:61"},"nodeType":"YulFunctionCall","src":"14696:13:61"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14689:3:61"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14395:5:61","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14405:3:61","type":""}],"src":"14366:349:61"},{"body":{"nodeType":"YulBlock","src":"14894:230:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14911:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14922:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14904:6:61"},"nodeType":"YulFunctionCall","src":"14904:21:61"},"nodeType":"YulExpressionStatement","src":"14904:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14945:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14956:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14941:3:61"},"nodeType":"YulFunctionCall","src":"14941:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"14961:2:61","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14934:6:61"},"nodeType":"YulFunctionCall","src":"14934:30:61"},"nodeType":"YulExpressionStatement","src":"14934:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14984:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"14995:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14980:3:61"},"nodeType":"YulFunctionCall","src":"14980:18:61"},{"hexValue":"4368756753706c617368436c61696d65723a206f7267494420616c7265616479","kind":"string","nodeType":"YulLiteral","src":"15000:34:61","type":"","value":"ChugSplashClaimer: orgID already"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14973:6:61"},"nodeType":"YulFunctionCall","src":"14973:62:61"},"nodeType":"YulExpressionStatement","src":"14973:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15055:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15066:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15051:3:61"},"nodeType":"YulFunctionCall","src":"15051:18:61"},{"hexValue":"20636c61696d6564","kind":"string","nodeType":"YulLiteral","src":"15071:10:61","type":"","value":" claimed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15044:6:61"},"nodeType":"YulFunctionCall","src":"15044:38:61"},"nodeType":"YulExpressionStatement","src":"15044:38:61"},{"nodeType":"YulAssignment","src":"15091:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15103:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15114:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15099:3:61"},"nodeType":"YulFunctionCall","src":"15099:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15091:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_8aa16de064b0d4bc3e18581fd7ca0a68affd08efd8e9e2d3b3c29d12c609596b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14871:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14885:4:61","type":""}],"src":"14720:404:61"},{"body":{"nodeType":"YulBlock","src":"15303:228:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15320:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15331:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15313:6:61"},"nodeType":"YulFunctionCall","src":"15313:21:61"},"nodeType":"YulExpressionStatement","src":"15313:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15354:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15365:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15350:3:61"},"nodeType":"YulFunctionCall","src":"15350:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"15370:2:61","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15343:6:61"},"nodeType":"YulFunctionCall","src":"15343:30:61"},"nodeType":"YulExpressionStatement","src":"15343:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15393:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15404:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15389:3:61"},"nodeType":"YulFunctionCall","src":"15389:18:61"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"15409:34:61","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15382:6:61"},"nodeType":"YulFunctionCall","src":"15382:62:61"},"nodeType":"YulExpressionStatement","src":"15382:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15464:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15475:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15460:3:61"},"nodeType":"YulFunctionCall","src":"15460:18:61"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"15480:8:61","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15453:6:61"},"nodeType":"YulFunctionCall","src":"15453:36:61"},"nodeType":"YulExpressionStatement","src":"15453:36:61"},{"nodeType":"YulAssignment","src":"15498:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15510:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15521:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15506:3:61"},"nodeType":"YulFunctionCall","src":"15506:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15498:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15280:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15294:4:61","type":""}],"src":"15129:402:61"},{"body":{"nodeType":"YulBlock","src":"15710:182:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15727:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15738:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15720:6:61"},"nodeType":"YulFunctionCall","src":"15720:21:61"},"nodeType":"YulExpressionStatement","src":"15720:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15761:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15772:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15757:3:61"},"nodeType":"YulFunctionCall","src":"15757:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"15777:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15750:6:61"},"nodeType":"YulFunctionCall","src":"15750:30:61"},"nodeType":"YulExpressionStatement","src":"15750:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15800:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15811:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15796:3:61"},"nodeType":"YulFunctionCall","src":"15796:18:61"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"15816:34:61","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15789:6:61"},"nodeType":"YulFunctionCall","src":"15789:62:61"},"nodeType":"YulExpressionStatement","src":"15789:62:61"},{"nodeType":"YulAssignment","src":"15860:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15872:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15883:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15868:3:61"},"nodeType":"YulFunctionCall","src":"15868:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15860:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15687:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15701:4:61","type":""}],"src":"15536:356:61"}]},"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_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(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_bytes32t_addresst_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n        let value_1 := calldataload(add(headStart, 64))\n        validator_revert_bool(value_1)\n        value2 := value_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_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$_ChugSplashRegistry_$8652__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_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_addresst_uint32(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        value1 := abi_decode_uint32(add(headStart, 32))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_2295() -> 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_2297() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 96)\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_array_struct_CrossChainMessageInfo_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\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        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_array_struct_RegistrationInfo_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_struct_CrossChainMessageInfo_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            let _3 := 0xffffffffffffffff\n            if gt(innerOffset, _3)\n            {\n                let _4 := 0\n                revert(_4, _4)\n            }\n            let _5 := add(offset, innerOffset)\n            let _6 := add(sub(end, _5), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let _7 := 0xa0\n            if slt(_6, _7)\n            {\n                let _8 := 0\n                revert(_8, _8)\n            }\n            let value := allocate_memory_2295()\n            let _9 := 0x60\n            if slt(_6, _9)\n            {\n                let _10 := 0\n                revert(_10, _10)\n            }\n            let value_1 := allocate_memory_2295()\n            mstore(value_1, calldataload(add(_5, _2)))\n            let _11 := 64\n            mstore(add(value_1, _2), calldataload(add(_5, _11)))\n            mstore(add(value_1, _11), calldataload(add(_5, _9)))\n            mstore(value, value_1)\n            mstore(add(value, _2), abi_decode_address(add(_5, 128)))\n            let offset_1 := calldataload(add(_5, _7))\n            if gt(offset_1, _3)\n            {\n                let _12 := 0\n                revert(_12, _12)\n            }\n            mstore(add(value, _11), abi_decode_bytes(add(add(_5, offset_1), _2), end))\n            mstore(dst, value)\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_bytes32t_array$_t_struct$_CrossChainMessageInfo_$5560_memory_ptr_$dyn_memory_ptrt_array$_t_struct$_RegistrationInfo_$5575_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        let _1 := 96\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let _2 := 32\n        let offset := calldataload(add(headStart, _2))\n        let _3 := 0xffffffffffffffff\n        if gt(offset, _3) { revert(0, 0) }\n        let _4 := add(headStart, offset)\n        if iszero(slt(add(_4, 0x1f), dataEnd)) { revert(0, 0) }\n        let _5 := calldataload(_4)\n        let dst := allocate_memory(array_allocation_size_array_struct_CrossChainMessageInfo_dyn(_5))\n        let dst_1 := dst\n        mstore(dst, _5)\n        dst := add(dst, _2)\n        let srcEnd := add(add(_4, mul(_5, _1)), _2)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_4, _2)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            if slt(sub(dataEnd, src), _1)\n            {\n                let _6 := 0\n                revert(_6, _6)\n            }\n            let value := allocate_memory_2297()\n            let value_1 := calldataload(src)\n            validator_revert_address(value_1)\n            mstore(value, value_1)\n            mstore(add(value, _2), abi_decode_uint32(add(src, _2)))\n            let _7 := 64\n            mstore(add(value, _7), calldataload(add(src, _7)))\n            mstore(dst, value)\n            dst := add(dst, _2)\n        }\n        value1 := dst_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _3) { revert(0, 0) }\n        value2 := abi_decode_array_struct_RegistrationInfo_dyn(add(headStart, offset_1), dataEnd)\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_addresst_uint32t_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_uint32(add(headStart, 32))\n        let value_1 := calldataload(add(headStart, 64))\n        validator_revert_address(value_1)\n        value2 := value_1\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_stringliteral_640f34a928259f01608f46baf73a4cd239bf35ab13e80fbd1e6fedcbc59513b7__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), \"ChugSplashClaimer: caller not or\")\n        mstore(add(headStart, 96), \"g ID owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cba8bd74eece2738fbff49633c8300e0cb2d7ddd2fcffa7383cd914f0853966e__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), \"ChugSplashClaimer: caller not ap\")\n        mstore(add(headStart, 96), \"proved\")\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 abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\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_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_d9c081a9dea8ed12ff75f290a05f238b5a259f42a155230111212312ff46e356__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), \"ChugSplashClaimer: invalid manag\")\n        mstore(add(headStart, 96), \"er version\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dad25f4d162c720300d3a9513948bbfa9b12f4dfb9d21b85f9f818a36cfea887__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), \"ChugSplashClaimer: invalid cross\")\n        mstore(add(headStart, 96), \"Chain adapter\")\n        tail := add(headStart, 128)\n    }\n    function copy_memory_to_memory(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        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_struct_CrossChainMessageInfo(value, pos)\n    {\n        mstore(pos, and(mload(value), 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(pos, 0x20), and(mload(add(value, 0x20)), 0xffffffff))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n    }\n    function abi_encode_tuple_t_bytes32_t_struct$_RegistrationInfo_$5575_memory_ptr_t_struct$_CrossChainMessageInfo_$5560_memory_ptr__to_t_bytes32_t_struct$_RegistrationInfo_$5575_memory_ptr_t_struct$_CrossChainMessageInfo_$5560_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 160)\n        let _1 := mload(value1)\n        mstore(add(headStart, 160), mload(_1))\n        mstore(add(headStart, 192), mload(add(_1, 32)))\n        mstore(add(headStart, 224), mload(add(_1, 0x40)))\n        mstore(add(headStart, 256), and(mload(add(value1, 32)), 0xffffffffffffffffffffffffffffffffffffffff))\n        let memberValue0 := mload(add(value1, 0x40))\n        mstore(add(headStart, 288), 160)\n        let length := mload(memberValue0)\n        mstore(add(headStart, 320), length)\n        let _2 := 352\n        copy_memory_to_memory(add(memberValue0, 32), add(headStart, _2), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), _2)\n        abi_encode_struct_CrossChainMessageInfo(value2, add(headStart, 0x40))\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(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_c0474ff842f36dbc33ed4df1f325b5f3b9519e950f0cc89458a27a13ba1a4704__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ChugSplashClaimer: failed to ini\")\n        mstore(add(headStart, 96), \"tiate registration\")\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 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 abi_encode_tuple_t_stringliteral_8aa16de064b0d4bc3e18581fd7ca0a68affd08efd8e9e2d3b3c29d12c609596b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ChugSplashClaimer: orgID already\")\n        mstore(add(headStart, 96), \" claimed\")\n        tail := add(headStart, 128)\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}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5224":[{"length":32,"start":450},{"length":32,"start":1473},{"length":32,"start":1652}]},"linkReferences":{},"object":"6080604052600436106100c75760003560e01c80638da5cb5b11610074578063d73e879f1161004e578063d73e879f14610290578063ef859f98146102cb578063f2fde38b146102eb57600080fd5b80638da5cb5b14610232578063a21dff001461025d578063c84902c01461027057600080fd5b8063715018a6116100a5578063715018a61461019b5780637b103999146101b057806385e5ee19146101e457600080fd5b8063052e8df4146100cc5780630ce22b63146100ee578063385afac314610133575b600080fd5b3480156100d857600080fd5b506100ec6100e7366004610d85565b61030b565b005b3480156100fa57600080fd5b5061011e610109366004610dc7565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561013f57600080fd5b5061017661014e366004610dc7565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012a565b3480156101a757600080fd5b506100ec610440565b3480156101bc57600080fd5b506101767f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f057600080fd5b506101766101ff366004610df4565b600460209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561023e57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610176565b6100ec61026b36600461105d565b610454565b34801561027c57600080fd5b506100ec61028b36600461115c565b6109f1565b34801561029c57600080fd5b5061011e6102ab36600461115c565b600360209081526000928352604080842090915290825290205460ff1681565b3480156102d757600080fd5b506100ec6102e636600461118c565b610b30565b3480156102f757600080fd5b506100ec6103063660046111ca565b610bcc565b60008381526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1633146103a95760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c617368436c61696d65723a2063616c6c6572206e6f74206f7260448201527f67204944206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600083815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016851515908117909155905190815285917f48dd4ae3ca6e1a6c3202c325c2e839ad733c03ad39a1a9b20cbe71c34197008691015b60405180910390a3505050565b610448610c69565b6104526000610cd0565b565b60008381526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1633148061049f5750600083815260036020908152604080832033845290915290205460ff165b6105115760405162461bcd60e51b815260206004820152602660248201527f4368756753706c617368436c61696d65723a2063616c6c6572206e6f7420617060448201527f70726f766564000000000000000000000000000000000000000000000000000060648201526084016103a0565b60005b82518110156109eb576000838281518110610531576105316111ee565b60200260200101519050600083838151811061054f5761054f6111ee565b602090810291909101810151805180519281015160408083015190517fe91204de0000000000000000000000000000000000000000000000000000000081526004810195909552602485019190915260448401529092509060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e91204de90606401602060405180830381865afa158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c919061121d565b6040517f204bbec700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa1580156106bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e1919061123a565b6107535760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c617368436c61696d65723a20696e76616c6964206d616e616760448201527f65722076657273696f6e0000000000000000000000000000000000000000000060648201526084016103a0565b835173ffffffffffffffffffffffffffffffffffffffff90811660009081526004602090815260408083208289015163ffffffff16845290915290205416806108045760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c617368436c61696d65723a20696e76616c69642063726f737360448201527f436861696e20616461707465720000000000000000000000000000000000000060648201526084016103a0565b60008173ffffffffffffffffffffffffffffffffffffffff168a868860405160240161083293929190611283565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe787bc690000000000000000000000000000000000000000000000000000000017905251610895919061134d565b600060405180830381855af49150503d80600081146108d0576040519150601f19603f3d011682016040523d82523d6000602084013e6108d5565b606091505b505090508061094c5760405162461bcd60e51b815260206004820152603260248201527f4368756753706c617368436c61696d65723a206661696c656420746f20696e6960448201527f746961746520726567697374726174696f6e000000000000000000000000000060648201526084016103a0565b856020015163ffffffff16866000015173ffffffffffffffffffffffffffffffffffffffff168b7fc5d417aa2205a71cce03a5afb0dcdc12632d4e1a11f9c5a7290c8169963b983e8860200151336040516109ca92919073ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b60405180910390a450505050505080806109e390611369565b915050610514565b50505050565b60008281526001602052604090205460ff1615610a765760405162461bcd60e51b815260206004820152602860248201527f4368756753706c617368436c61696d65723a206f7267494420616c726561647960448201527f20636c61696d656400000000000000000000000000000000000000000000000060648201526084016103a0565b600082815260016020818152604080842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909317909255600281529181902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8516908117909155905190815283917fd707f574bf0f880d3c188892d3bf504e65df6d41b7e7a0ffaad280c33accb57f910160405180910390a25050565b610b38610c69565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260046020908152604080832063ffffffff88168085529083529281902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695871695861790555193845290927f0738786373dbde79111483bbfffcaf997c7d56a541572ec2e6f110d3a3e0dbb49101610433565b610bd4610c69565b73ffffffffffffffffffffffffffffffffffffffff8116610c5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103a0565b610c6681610cd0565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104525760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103a0565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c6657600080fd5b8035610d7281610d45565b919050565b8015158114610c6657600080fd5b600080600060608486031215610d9a57600080fd5b833592506020840135610dac81610d45565b91506040840135610dbc81610d77565b809150509250925092565b600060208284031215610dd957600080fd5b5035919050565b803563ffffffff81168114610d7257600080fd5b60008060408385031215610e0757600080fd5b8235610e1281610d45565b9150610e2060208401610de0565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610e7b57610e7b610e29565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610eaa57610eaa610e29565b604052919050565b600067ffffffffffffffff821115610ecc57610ecc610e29565b5060051b60200190565b600082601f830112610ee757600080fd5b813567ffffffffffffffff811115610f0157610f01610e29565b610f146020601f19601f84011601610e81565b818152846020838601011115610f2957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610f5757600080fd5b81356020610f6c610f6783610eb2565b610e81565b82815260059290921b84018101918181019086841115610f8b57600080fd5b8286015b8481101561105257803567ffffffffffffffff80821115610fb05760008081fd5b90880190818a03601f190160a080821215610fcb5760008081fd5b610fd3610e58565b606080841215610fe35760008081fd5b610feb610e58565b93508986013584526040808701358b860152818701358186015284835261101460808801610d67565b8b8401528387013594508585111561102e57600093508384fd5b61103c8f8c878a0101610ed6565b9083015250875250505092840192508301610f8f565b509695505050505050565b6000806000606080858703121561107357600080fd5b8435935060208086013567ffffffffffffffff8082111561109357600080fd5b818801915088601f8301126110a757600080fd5b81356110b5610f6782610eb2565b8181529085028301840190848101908b8311156110d157600080fd5b938501935b8285101561112b5786858d0312156110ee5760008081fd5b6110f6610e58565b853561110181610d45565b815261110e868801610de0565b8188015260408681013590820152825293860193908501906110d6565b97505050604088013593508084111561114357600080fd5b50505061115286828701610f46565b9150509250925092565b6000806040838503121561116f57600080fd5b82359150602083013561118181610d45565b809150509250929050565b6000806000606084860312156111a157600080fd5b83356111ac81610d45565b92506111ba60208501610de0565b91506040840135610dbc81610d45565b6000602082840312156111dc57600080fd5b81356111e781610d45565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561122f57600080fd5b81516111e781610d45565b60006020828403121561124c57600080fd5b81516111e781610d77565b60005b8381101561127257818101518382015260200161125a565b838111156109eb5750506000910152565b83815260a0602082015260008351805160a0840152602081015160c0840152604081015160e08401525073ffffffffffffffffffffffffffffffffffffffff602085015116610100830152604084015160a06101208401528051806101408501526101606112f78282870160208601611257565b80601f19601f84011686010193505050506113456040830184805173ffffffffffffffffffffffffffffffffffffffff16825260208082015163ffffffff1690830152604090810151910152565b949350505050565b6000825161135f818460208701611257565b9190910192915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036113c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x74 JUMPI DUP1 PUSH4 0xD73E879F GT PUSH2 0x4E JUMPI DUP1 PUSH4 0xD73E879F EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xEF859F98 EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0xA21DFF00 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0xC84902C0 EQ PUSH2 0x270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xA5 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x85E5EE19 EQ PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x52E8DF4 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0xCE22B63 EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0x385AFAC3 EQ PUSH2 0x133 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0xE7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD85 JUMP JUMPDEST PUSH2 0x30B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11E PUSH2 0x109 CALLDATASIZE PUSH1 0x4 PUSH2 0xDC7 JUMP JUMPDEST PUSH1 0x1 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 CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x14E CALLDATASIZE PUSH1 0x4 PUSH2 0xDC7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x440 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0xDF4 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x176 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x105D JUMP JUMPDEST PUSH2 0x454 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x115C JUMP JUMPDEST PUSH2 0x9F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11E PUSH2 0x2AB CALLDATASIZE PUSH1 0x4 PUSH2 0x115C 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 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x2E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xB30 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEC PUSH2 0x306 CALLDATASIZE PUSH1 0x4 PUSH2 0x11CA JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x3A9 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 0x4368756753706C617368436C61696D65723A2063616C6C6572206E6F74206F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x67204944206F776E657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP6 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 DUP2 MSTORE DUP6 SWAP2 PUSH32 0x48DD4AE3CA6E1A6C3202C325C2E839AD733C03AD39A1A9B20CBE71C341970086 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x448 PUSH2 0xC69 JUMP JUMPDEST PUSH2 0x452 PUSH1 0x0 PUSH2 0xCD0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ DUP1 PUSH2 0x49F JUMPI POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x511 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 0x4368756753706C617368436C61696D65723A2063616C6C6572206E6F74206170 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x70726F7665640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x9EB JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x531 JUMPI PUSH2 0x531 PUSH2 0x11EE JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x54F JUMPI PUSH2 0x54F PUSH2 0x11EE JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP1 MLOAD DUP1 MLOAD SWAP3 DUP2 ADD MLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH32 0xE91204DE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x24 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP5 ADD MSTORE SWAP1 SWAP3 POP SWAP1 PUSH1 0x0 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xE91204DE SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x608 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 0x62C SWAP2 SWAP1 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6BD 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 0x6E1 SWAP2 SWAP1 PUSH2 0x123A JUMP JUMPDEST PUSH2 0x753 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 0x4368756753706C617368436C61696D65723A20696E76616C6964206D616E6167 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65722076657273696F6E00000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST DUP4 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP3 DUP10 ADD MLOAD PUSH4 0xFFFFFFFF AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x804 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 0x4368756753706C617368436C61696D65723A20696E76616C69642063726F7373 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x436861696E206164617074657200000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 DUP7 DUP9 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x832 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1283 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE787BC6900000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x134D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8D0 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 0x8D5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x94C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C617368436C61696D65723A206661696C656420746F20696E69 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x746961746520726567697374726174696F6E0000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH4 0xFFFFFFFF AND DUP7 PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 PUSH32 0xC5D417AA2205A71CCE03A5AFB0DCDC12632D4E1A11F9C5A7290C8169963B983E DUP9 PUSH1 0x20 ADD MLOAD CALLER PUSH1 0x40 MLOAD PUSH2 0x9CA SWAP3 SWAP2 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x9E3 SWAP1 PUSH2 0x1369 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x514 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA76 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C617368436C61696D65723A206F7267494420616C7265616479 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636C61696D6564000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x2 DUP2 MSTORE SWAP2 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 DUP2 MSTORE DUP4 SWAP2 PUSH32 0xD707F574BF0F880D3C188892D3BF504E65DF6D41B7E7A0FFAAD280C33ACCB57F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0xB38 PUSH2 0xC69 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH4 0xFFFFFFFF DUP9 AND DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE SWAP3 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP6 DUP8 AND SWAP6 DUP7 OR SWAP1 SSTORE MLOAD SWAP4 DUP5 MSTORE SWAP1 SWAP3 PUSH32 0x738786373DBDE79111483BBFFFCAF997C7D56A541572EC2E6F110D3A3E0DBB4 SWAP2 ADD PUSH2 0x433 JUMP JUMPDEST PUSH2 0xBD4 PUSH2 0xC69 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xC5D 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 0x3A0 JUMP JUMPDEST PUSH2 0xC66 DUP2 PUSH2 0xCD0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x452 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 0x3A0 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 0xC66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xD72 DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0xDAC DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0xDBC DUP2 PUSH2 0xD77 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xD72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xE12 DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP2 POP PUSH2 0xE20 PUSH1 0x20 DUP5 ADD PUSH2 0xDE0 JUMP JUMPDEST SWAP1 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 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE7B JUMPI PUSH2 0xE7B PUSH2 0xE29 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 0xEAA JUMPI PUSH2 0xEAA PUSH2 0xE29 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xECC JUMPI PUSH2 0xECC PUSH2 0xE29 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF01 JUMPI PUSH2 0xF01 PUSH2 0xE29 JUMP JUMPDEST PUSH2 0xF14 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0xE81 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xF29 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 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0xF6C PUSH2 0xF67 DUP4 PUSH2 0xEB2 JUMP JUMPDEST PUSH2 0xE81 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 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x1052 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xFB0 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST SWAP1 DUP9 ADD SWAP1 DUP2 DUP11 SUB PUSH1 0x1F NOT ADD PUSH1 0xA0 DUP1 DUP3 SLT ISZERO PUSH2 0xFCB JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xFD3 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x60 DUP1 DUP5 SLT ISZERO PUSH2 0xFE3 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xFEB PUSH2 0xE58 JUMP JUMPDEST SWAP4 POP DUP10 DUP7 ADD CALLDATALOAD DUP5 MSTORE PUSH1 0x40 DUP1 DUP8 ADD CALLDATALOAD DUP12 DUP7 ADD MSTORE DUP2 DUP8 ADD CALLDATALOAD DUP2 DUP7 ADD MSTORE DUP5 DUP4 MSTORE PUSH2 0x1014 PUSH1 0x80 DUP9 ADD PUSH2 0xD67 JUMP JUMPDEST DUP12 DUP5 ADD MSTORE DUP4 DUP8 ADD CALLDATALOAD SWAP5 POP DUP6 DUP6 GT ISZERO PUSH2 0x102E JUMPI PUSH1 0x0 SWAP4 POP DUP4 DUP5 REVERT JUMPDEST PUSH2 0x103C DUP16 DUP13 DUP8 DUP11 ADD ADD PUSH2 0xED6 JUMP JUMPDEST SWAP1 DUP4 ADD MSTORE POP DUP8 MSTORE POP POP POP SWAP3 DUP5 ADD SWAP3 POP DUP4 ADD PUSH2 0xF8F JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP1 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1073 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1093 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x10A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10B5 PUSH2 0xF67 DUP3 PUSH2 0xEB2 JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP1 DUP6 MUL DUP4 ADD DUP5 ADD SWAP1 DUP5 DUP2 ADD SWAP1 DUP12 DUP4 GT ISZERO PUSH2 0x10D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x112B JUMPI DUP7 DUP6 DUP14 SUB SLT ISZERO PUSH2 0x10EE JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x10F6 PUSH2 0xE58 JUMP JUMPDEST DUP6 CALLDATALOAD PUSH2 0x1101 DUP2 PUSH2 0xD45 JUMP JUMPDEST DUP2 MSTORE PUSH2 0x110E DUP7 DUP9 ADD PUSH2 0xDE0 JUMP JUMPDEST DUP2 DUP9 ADD MSTORE PUSH1 0x40 DUP7 DUP2 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP3 MSTORE SWAP4 DUP7 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x10D6 JUMP JUMPDEST SWAP8 POP POP POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP4 POP DUP1 DUP5 GT ISZERO PUSH2 0x1143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP PUSH2 0x1152 DUP7 DUP3 DUP8 ADD PUSH2 0xF46 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1181 DUP2 PUSH2 0xD45 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x11A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x11AC DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP3 POP PUSH2 0x11BA PUSH1 0x20 DUP6 ADD PUSH2 0xDE0 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0xDBC DUP2 PUSH2 0xD45 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11E7 DUP2 PUSH2 0xD45 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x122F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11E7 DUP2 PUSH2 0xD45 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x124C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11E7 DUP2 PUSH2 0xD77 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1272 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x125A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x9EB JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 DUP4 MLOAD DUP1 MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0xE0 DUP5 ADD MSTORE POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x20 DUP6 ADD MLOAD AND PUSH2 0x100 DUP4 ADD MSTORE PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0xA0 PUSH2 0x120 DUP5 ADD MSTORE DUP1 MLOAD DUP1 PUSH2 0x140 DUP6 ADD MSTORE PUSH2 0x160 PUSH2 0x12F7 DUP3 DUP3 DUP8 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1257 JUMP JUMPDEST DUP1 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP7 ADD ADD SWAP4 POP POP POP POP PUSH2 0x1345 PUSH1 0x40 DUP4 ADD DUP5 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH4 0xFFFFFFFF AND SWAP1 DUP4 ADD MSTORE PUSH1 0x40 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x135F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1257 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x13C1 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"396:3870:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3599:326;;;;;;;;;;-1:-1:-1;3599:326:29;;;;;:::i;:::-;;:::i;:::-;;1015:47;;;;;;;;;;-1:-1:-1;1015:47:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1240:14:61;;1233:22;1215:41;;1203:2;1188:18;1015:47:29;;;;;;;;1069:46;;;;;;;;;;-1:-1:-1;1069:46:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1443:42:61;1431:55;;;1413:74;;1401:2;1386:18;1069:46:29;1267:226:61;1824:101:13;;;;;;;;;;;;;:::i;964:44:29:-;;;;;;;;;;;;;;;1268:72;;;;;;;;;;-1:-1:-1;1268:72:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:13;;;;;;;;;;-1:-1:-1;1247:7:13;1273:6;;;1201:85;;1859:1734:29;;;;;;:::i;:::-;;:::i;1559:294::-;;;;;;;;;;-1:-1:-1;1559:294:29;;;;;:::i;:::-;;:::i;1122:70::-;;;;;;;;;;-1:-1:-1;1122:70:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3931:333;;;;;;;;;;-1:-1:-1;3931:333:29;;;;;:::i;:::-;;:::i;2074:198:13:-;;;;;;;;;;-1:-1:-1;2074:198:13;;;;;:::i;:::-;;:::i;3599:326:29:-;3722:19;;;;:11;:19;;;;;;;;3708:10;:33;3700:88;;;;-1:-1:-1;;;3700:88:29;;9142:2:61;3700:88:29;;;9124:21:61;9181:2;9161:18;;;9154:30;9220:34;9200:18;;;9193:62;9291:12;9271:18;;;9264:40;9321:19;;3700:88:29;;;;;;;;;3798:26;;;;:18;:26;;;;;;;;:38;;;;;;;;;;;;;:50;;;;;;;;;;;;;3863:55;;1215:41:61;;;3798:26:29;;3863:55;;1188:18:61;3863:55:29;;;;;;;;3599:326;;;:::o;1824:101:13:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1859:1734:29:-;2084:19;;;;:11;:19;;;;;;;;2070:10;:33;;:75;;-1:-1:-1;2107:26:29;;;;:18;:26;;;;;;;;2134:10;2107:38;;;;;;;;;;2070:75;2049:160;;;;-1:-1:-1;;;2049:160:29;;9553:2:61;2049:160:29;;;9535:21:61;9592:2;9572:18;;;9565:30;9631:34;9611:18;;;9604:62;9702:8;9682:18;;;9675:36;9728:19;;2049:160:29;9351:402:61;2049:160:29;2225:6;2220:1367;2241:9;:16;2237:1;:20;2220:1367;;;2278:40;2321:9;2331:1;2321:12;;;;;;;;:::i;:::-;;;;;;;2278:55;;2347:36;2386:17;2404:1;2386:20;;;;;;;;:::i;:::-;;;;;;;;;;;;2445;;2520:13;;2535;;;;2550;;;;;2502:62;;;;;;;;10149:25:61;;;;10190:18;;;10183:34;;;;10233:18;;;10226:34;2386:20:29;;-1:-1:-1;2445:20:29;2420:22;;2502:17;:8;:17;;;;10122:18:61;;2502:62:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2603:44;;;;;:31;1431:55:61;;;2603:44:29;;;1413:74:61;2480:84:29;;-1:-1:-1;2603:8:29;:31;;;;;;1386:18:61;;2603:44:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:145;;;;-1:-1:-1;;;2578:145:29;;10979:2:61;2578:145:29;;;10961:21:61;11018:2;10998:18;;;10991:30;11057:34;11037:18;;;11030:62;11128:12;11108:18;;;11101:40;11158:19;;2578:145:29;10777:406:61;2578:145:29;2785:26;;2766:46;;;;2738:25;2766:46;;;:18;:46;;;;;;;;2830:24;;;;2766:102;;;;;;;;;;;;2882:135;;;;-1:-1:-1;;;2882:135:29;;11390:2:61;2882:135:29;;;11372:21:61;11429:2;11409:18;;;11402:30;11468:34;11448:18;;;11441:62;11539:15;11519:18;;;11512:43;11572:19;;2882:135:29;11188:409:61;2882:135:29;3033:12;3051:17;:30;;3197:6;3205:12;3219:11;3099:150;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3099:150:29;;;;;;;;;;;;;;;;;;;;3051:212;;;3099:150;3051:212;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3032:231;;;3285:7;3277:70;;;;-1:-1:-1;;;3277:70:29;;13817:2:61;3277:70:29;;;13799:21:61;13856:2;13836:18;;;13829:30;13895:34;13875:18;;;13868:62;13966:20;13946:18;;;13939:48;14004:19;;3277:70:29;13615:414:61;3277:70:29;3474:11;:24;;;3367:209;;3430:11;:26;;;3367:209;;3406:6;3367:209;3516:12;:18;;;3552:10;3367:209;;;;;;14218:42:61;14287:15;;;14269:34;;14339:15;;14334:2;14319:18;;14312:43;14196:2;14181:18;;14034:327;3367:209:29;;;;;;;;2264:1323;;;;;;2259:3;;;;;:::i;:::-;;;;2220:1367;;;;1859:1734;;;:::o;1559:294::-;1648:23;;;;:15;:23;;;;;;;;1647:24;1639:77;;;;-1:-1:-1;;;1639:77:29;;14922:2:61;1639:77:29;;;14904:21:61;14961:2;14941:18;;;14934:30;15000:34;14980:18;;;14973:62;15071:10;15051:18;;;15044:38;15099:19;;1639:77:29;14720:404:61;1639:77:29;1726:23;;;;1752:4;1726:23;;;;;;;;:30;;;;;;;;;;1766:11;:19;;;;;;:28;;;;;;;;;;;;;1809:37;;1413:74:61;;;1726:23:29;;1809:37;;1386:18:61;1809:37:29;;;;;;;1559:294;;:::o;3931:333::-;1094:13:13;:11;:13::i;:::-;4095:35:29::1;::::0;;::::1;;::::0;;;:18:::1;:35;::::0;;;;;;;:50:::1;::::0;::::1;::::0;;;;;;;;;;:71;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;4181:76;1413:74:61;;;4095:50:29;;4181:76:::1;::::0;1386:18:61;4181:76:29::1;1267:226:61::0;2074:198:13;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:13;;15331:2:61;2154:73:13::1;::::0;::::1;15313:21:61::0;15370:2;15350:18;;;15343:30;15409:34;15389:18;;;15382:62;15480:8;15460:18;;;15453:36;15506:19;;2154:73:13::1;15129:402:61::0;2154:73:13::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:17;1422:23:13;1414:68;;;;-1:-1:-1;;;1414:68:13;;15738:2:61;1414:68:13;;;15720:21:61;;;15757:18;;;15750:30;15816:34;15796:18;;;15789:62;15868:18;;1414:68:13;15536:356:61;2426:187:13;2499:16;2518:6;;;2534:17;;;;;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:154:61:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:118::-;398:5;391:13;384:21;377:5;374:32;364:60;;420:1;417;410:12;435:450;509:6;517;525;578:2;566:9;557:7;553:23;549:32;546:52;;;594:1;591;584:12;546:52;630:9;617:23;607:33;;690:2;679:9;675:18;662:32;703:31;728:5;703:31;:::i;:::-;753:5;-1:-1:-1;810:2:61;795:18;;782:32;823:30;782:32;823:30;:::i;:::-;872:7;862:17;;;435:450;;;;;:::o;890:180::-;949:6;1002:2;990:9;981:7;977:23;973:32;970:52;;;1018:1;1015;1008:12;970:52;-1:-1:-1;1041:23:61;;890:180;-1:-1:-1;890:180:61:o;1756:163::-;1823:20;;1883:10;1872:22;;1862:33;;1852:61;;1909:1;1906;1899:12;1924:319;1991:6;1999;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;2107:9;2094:23;2126:31;2151:5;2126:31;:::i;:::-;2176:5;-1:-1:-1;2200:37:61;2233:2;2218:18;;2200:37;:::i;:::-;2190:47;;1924:319;;;;;:::o;2248:184::-;2300:77;2297:1;2290:88;2397:4;2394:1;2387:15;2421:4;2418:1;2411:15;2437:253;2509:2;2503:9;2551:4;2539:17;;2586:18;2571:34;;2607:22;;;2568:62;2565:88;;;2633:18;;:::i;:::-;2669:2;2662:22;2437:253;:::o;2951:334::-;3022:2;3016:9;3078:2;3068:13;;-1:-1:-1;;3064:86:61;3052:99;;3181:18;3166:34;;3202:22;;;3163:62;3160:88;;;3228:18;;:::i;:::-;3264:2;3257:22;2951:334;;-1:-1:-1;2951:334:61:o;3290:204::-;3371:4;3404:18;3396:6;3393:30;3390:56;;;3426:18;;:::i;:::-;-1:-1:-1;3471:1:61;3467:14;3483:4;3463:25;;3290:204::o;3499:589::-;3541:5;3594:3;3587:4;3579:6;3575:17;3571:27;3561:55;;3612:1;3609;3602:12;3561:55;3648:6;3635:20;3674:18;3670:2;3667:26;3664:52;;;3696:18;;:::i;:::-;3740:114;3848:4;-1:-1:-1;;3772:4:61;3768:2;3764:13;3760:86;3756:97;3740:114;:::i;:::-;3879:2;3870:7;3863:19;3925:3;3918:4;3913:2;3905:6;3901:15;3897:26;3894:35;3891:55;;;3942:1;3939;3932:12;3891:55;4007:2;4000:4;3992:6;3988:17;3981:4;3972:7;3968:18;3955:55;4055:1;4030:16;;;4048:4;4026:27;4019:38;;;;4034:7;3499:589;-1:-1:-1;;;3499:589:61:o;4093:2015::-;4163:5;4216:3;4209:4;4201:6;4197:17;4193:27;4183:55;;4234:1;4231;4224:12;4183:55;4270:6;4257:20;4296:4;4320:81;4336:64;4397:2;4336:64;:::i;:::-;4320:81;:::i;:::-;4435:15;;;4521:1;4517:10;;;;4505:23;;4501:32;;;4466:12;;;;4545:15;;;4542:35;;;4573:1;4570;4563:12;4542:35;4609:2;4601:6;4597:15;4621:1458;4637:6;4632:3;4629:15;4621:1458;;;4723:3;4710:17;4750:18;4800:2;4787:11;4784:19;4781:109;;;4844:1;4873:2;4869;4862:14;4781:109;4913:24;;;;4964:12;;;-1:-1:-1;;4960:85:61;5068:4;5088:11;;;5085:101;;;5140:1;5169:2;5165;5158:14;5085:101;5212:22;;:::i;:::-;5257:4;5285:2;5281;5277:11;5274:104;;;5330:1;5360:3;5355;5348:16;5274:104;5406:22;;:::i;:::-;5391:37;;5478:2;5474;5470:11;5457:25;5448:7;5441:42;5507:2;5568:3;5564:2;5560:12;5547:26;5542:2;5533:7;5529:16;5522:52;5634:2;5630;5626:11;5613:25;5607:3;5598:7;5594:17;5587:52;5666:7;5659:5;5652:22;5710:32;5737:3;5733:2;5729:12;5710:32;:::i;:::-;5705:2;5698:5;5694:14;5687:56;5793:2;5789;5785:11;5772:25;5756:41;;5826:2;5816:8;5813:16;5810:109;;;5871:1;5860:12;;5901:3;5896;5889:16;5810:109;5956:49;6001:3;5996:2;5985:8;5981:2;5977:17;5973:26;5956:49;:::i;:::-;5939:15;;;5932:74;-1:-1:-1;6019:18:61;;-1:-1:-1;;;6057:12:61;;;;-1:-1:-1;4654:12:61;;4621:1458;;;-1:-1:-1;6097:5:61;4093:2015;-1:-1:-1;;;;;;4093:2015:61:o;6113:1785::-;6313:6;6321;6329;6360:2;6403;6391:9;6382:7;6378:23;6374:32;6371:52;;;6419:1;6416;6409:12;6371:52;6455:9;6442:23;6432:33;;6484:2;6537;6526:9;6522:18;6509:32;6560:18;6601:2;6593:6;6590:14;6587:34;;;6617:1;6614;6607:12;6587:34;6655:6;6644:9;6640:22;6630:32;;6700:7;6693:4;6689:2;6685:13;6681:27;6671:55;;6722:1;6719;6712:12;6671:55;6758:2;6745:16;6781:81;6797:64;6858:2;6797:64;:::i;6781:81::-;6896:15;;;6974:11;;;6966:20;;6962:29;;;6927:12;;;;7003:19;;;7000:39;;;7035:1;7032;7025:12;7000:39;7059:11;;;;7079:589;7095:6;7090:3;7087:15;7079:589;;;7175:2;7169:3;7160:7;7156:17;7152:26;7149:116;;;7219:1;7248:2;7244;7237:14;7149:116;7291:22;;:::i;:::-;7354:3;7341:17;7371:33;7396:7;7371:33;:::i;:::-;7417:22;;7475:31;7493:12;;;7475:31;:::i;:::-;7459:14;;;7452:55;7530:2;7581:12;;;7568:26;7552:14;;;7545:50;7608:18;;7112:12;;;;7646;;;;7079:589;;;7687:5;-1:-1:-1;;;7745:2:61;7730:18;;7717:32;;-1:-1:-1;7761:16:61;;;7758:36;;;7790:1;7787;7780:12;7758:36;;;;7813:79;7884:7;7873:8;7862:9;7858:24;7813:79;:::i;:::-;7803:89;;;6113:1785;;;;;:::o;7903:315::-;7971:6;7979;8032:2;8020:9;8011:7;8007:23;8003:32;8000:52;;;8048:1;8045;8038:12;8000:52;8084:9;8071:23;8061:33;;8144:2;8133:9;8129:18;8116:32;8157:31;8182:5;8157:31;:::i;:::-;8207:5;8197:15;;;7903:315;;;;;:::o;8223:460::-;8299:6;8307;8315;8368:2;8356:9;8347:7;8343:23;8339:32;8336:52;;;8384:1;8381;8374:12;8336:52;8423:9;8410:23;8442:31;8467:5;8442:31;:::i;:::-;8492:5;-1:-1:-1;8516:37:61;8549:2;8534:18;;8516:37;:::i;:::-;8506:47;;8605:2;8594:9;8590:18;8577:32;8618:33;8643:7;8618:33;:::i;8688:247::-;8747:6;8800:2;8788:9;8779:7;8775:23;8771:32;8768:52;;;8816:1;8813;8806:12;8768:52;8855:9;8842:23;8874:31;8899:5;8874:31;:::i;:::-;8924:5;8688:247;-1:-1:-1;;;8688:247:61:o;9758:184::-;9810:77;9807:1;9800:88;9907:4;9904:1;9897:15;9931:4;9928:1;9921:15;10271:251;10341:6;10394:2;10382:9;10373:7;10369:23;10365:32;10362:52;;;10410:1;10407;10400:12;10362:52;10442:9;10436:16;10461:31;10486:5;10461:31;:::i;10527:245::-;10594:6;10647:2;10635:9;10626:7;10622:23;10618:32;10615:52;;;10663:1;10660;10653:12;10615:52;10695:9;10689:16;10714:28;10736:5;10714:28;:::i;11602:258::-;11674:1;11684:113;11698:6;11695:1;11692:13;11684:113;;;11774:11;;;11768:18;11755:11;;;11748:39;11720:2;11713:10;11684:113;;;11815:6;11812:1;11809:13;11806:48;;;-1:-1:-1;;11850:1:61;11832:16;;11825:27;11602:258::o;12154:1177::-;12485:6;12474:9;12467:25;12528:3;12523:2;12512:9;12508:18;12501:31;12448:4;12557:6;12551:13;12607:2;12601:9;12595:3;12584:9;12580:19;12573:38;12662:2;12658;12654:11;12648:18;12642:3;12631:9;12627:19;12620:47;12718:4;12714:2;12710:13;12704:20;12698:3;12687:9;12683:19;12676:49;;12790:42;12784:2;12776:6;12772:15;12766:22;12762:71;12756:3;12745:9;12741:19;12734:100;12881:4;12873:6;12869:17;12863:24;12924:3;12918;12907:9;12903:19;12896:32;12957:12;12951:19;13007:6;13001:3;12990:9;12986:19;12979:35;13033:3;13045:72;13110:6;13105:2;13094:9;13090:18;13085:2;13071:12;13067:21;13045:72;:::i;:::-;13244:2;-1:-1:-1;;13169:2:61;13161:6;13157:15;13153:88;13142:9;13138:104;13134:113;13126:121;;;;;13256:69;13319:4;13308:9;13304:20;13296:6;11956:12;;11970:42;11952:61;11940:74;;12067:4;12056:16;;;12050:23;12075:10;12046:40;12030:14;;;12023:64;12136:4;12125:16;;;12119:23;12103:14;;12096:47;11865:284;13256:69;12154:1177;;;;;;:::o;13336:274::-;13465:3;13503:6;13497:13;13519:53;13565:6;13560:3;13553:4;13545:6;13541:17;13519:53;:::i;:::-;13588:16;;;;;13336:274;-1:-1:-1;;13336:274:61:o;14366:349::-;14405:3;14436:66;14429:5;14426:77;14423:257;;14536:77;14533:1;14526:88;14637:4;14634:1;14627:15;14665:4;14662:1;14655:15;14423:257;-1:-1:-1;14707:1:61;14696:13;;14366:349::o"},"methodIdentifiers":{"approvedInitiators(bytes32,address)":"d73e879f","claimOrganizationID(bytes32,address)":"c84902c0","crossChainAdapters(address,uint32)":"85e5ee19","initiateRegistration(bytes32,(address,uint32,uint256)[],((uint256,uint256,uint256),address,bytes)[])":"a21dff00","orgIDOwners(bytes32)":"385afac3","organizationIDs(bytes32)":"0ce22b63","owner()":"8da5cb5b","registry()":"7b103999","renounceOwnership()":"715018a6","setCrossChainAdapter(address,uint32,address)":"ef859f98","setInitiatorApproval(bytes32,address,bool)":"052e8df4","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"contract ChugSplashRegistry\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"originEndpoint\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"destDomainID\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"crossChainAdapter\",\"type\":\"address\"}],\"name\":\"CrossChainAdapterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orgID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"InitiatorApprovalChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orgID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OrganizationIDClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"orgID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"originEndpoint\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"destDomainID\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"RegistrationInitiated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"approvedInitiators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orgID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"claimOrganizationID\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"crossChainAdapters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orgID\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"originEndpoint\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"destDomainID\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"relayerFee\",\"type\":\"uint256\"}],\"internalType\":\"struct CrossChainMessageInfo[]\",\"name\":\"_messages\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"managerInitializerData\",\"type\":\"bytes\"}],\"internalType\":\"struct RegistrationInfo[]\",\"name\":\"_registrationInfo\",\"type\":\"tuple[]\"}],\"name\":\"initiateRegistration\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"orgIDOwners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationIDs\",\"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\":\"registry\",\"outputs\":[{\"internalType\":\"contract ChugSplashRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_originEndpoint\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_destDomainID\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"_crossChainAdapter\",\"type\":\"address\"}],\"name\":\"setCrossChainAdapter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orgID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_initiator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setInitiatorApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_owner\":\"Address of the owner of the registry.\"}},\"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.\"}},\"title\":\"ChugSplashClaimer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ChugSplashClaimer.sol\":\"ChugSplashClaimer\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/ChugSplashClaimer.sol\":{\"keccak256\":\"0x1ad2100a2f11d091fac48c99142eaef04a6b742b2ffe521abc14a65365d6e639\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8174b6735764895d6448c251e94bfd7e1ce283e77ec2a410899affd621046e44\",\"dweb:/ipfs/QmP39is3Wb6kS1YmULot7yHFudQzdZMYdRdc8jhz5cmrBZ\"]},\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/ChugSplashManagerProxy.sol\":{\"keccak256\":\"0x08f7a01c1e8ed1a3ace823da2c800cac83ee0f1b686fa7d2aa9448fe9108b738\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c02af117c8c34ba3844d1a860cf5252601c649e085d33b8f1d148afa4a7e3d53\",\"dweb:/ipfs/QmSdAQDa9XkHCZ5GiG9mefe8Dyk5p54xQAfWNfy72e7dQY\"]},\"contracts/ChugSplashRegistry.sol\":{\"keccak256\":\"0xf21f036ad9a065f394db4f71f3b81a5c3bc53c82548db977a3cb4cb13045eb23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://157bbd56debc2fb38e71a25d5f07d95f177196dccf9cd9fc3c127b83e2a7edca\",\"dweb:/ipfs/QmXWqnsD1pWF1UGJ2nf553XED6TtszzoTcxeRmcj9kZSvL\"]},\"contracts/ChugSplashRegistryEvents.sol\":{\"keccak256\":\"0x118e5d3674d77632a6ef220f4e3b382874f43667cda8f4221691c8b0145361d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db406839a33143ecd104e076e325f46d571a1eb6faa7c5925f6c578b9ab3091f\",\"dweb:/ipfs/QmRLDpdGgB8erEniC17xWTRkUMAaueot1QT9mty95ugmxo\"]},\"contracts/Semver.sol\":{\"keccak256\":\"0x52d8f765cd6217080ac1f72ec9e3c890266721dac6140a57191b06929d24998f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b43be60ae13919f8e4a33176b0688d862e6beb96e82061419247a76f49f3905\",\"dweb:/ipfs/QmTd8jUQs9miD6r5vKjcC1xsoMhoKECSSUiQugKn5Qsjgx\"]},\"contracts/interfaces/IChugSplashManager.sol\":{\"keccak256\":\"0x37998e41256bc1141a1942cdd3a78937624b0cf76191fdc5c31dd7d38a6683e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7071f51a896ef06e787ea998ba876d461ef6828cfa3a5c9e3b6a456efd36f8\",\"dweb:/ipfs/QmXP3vojTfjiNqvXNxprz166wJXnqMvTL3bmdNdZv9rgfG\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]},\"contracts/interfaces/ICrossChainAdapter.sol\":{\"keccak256\":\"0xed516a15c78b8fd74865b7e8c126a565b6fcebe75432797bd0d18b1f12a9c686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3f2d9123da2e50fa15e6d43be2c951e82931dcb220ec2ec3e5c4b770bb9613\",\"dweb:/ipfs/QmYuqjXYAWyaeQc88bmgKqTyQMBtJ45pcXgHuqoDKBjzfX\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":2192,"contract":"contracts/ChugSplashClaimer.sol:ChugSplashClaimer","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":5228,"contract":"contracts/ChugSplashClaimer.sol:ChugSplashClaimer","label":"organizationIDs","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_bool)"},{"astId":5232,"contract":"contracts/ChugSplashClaimer.sol:ChugSplashClaimer","label":"orgIDOwners","offset":0,"slot":"2","type":"t_mapping(t_bytes32,t_address)"},{"astId":5238,"contract":"contracts/ChugSplashClaimer.sol:ChugSplashClaimer","label":"approvedInitiators","offset":0,"slot":"3","type":"t_mapping(t_bytes32,t_mapping(t_address,t_bool))"},{"astId":5244,"contract":"contracts/ChugSplashClaimer.sol:ChugSplashClaimer","label":"crossChainAdapters","offset":0,"slot":"4","type":"t_mapping(t_address,t_mapping(t_uint32,t_address))"}],"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_address,t_mapping(t_uint32,t_address))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint32 => address))","numberOfBytes":"32","value":"t_mapping(t_uint32,t_address)"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"},"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_bool))":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_uint32,t_address)":{"encoding":"mapping","key":"t_uint32","label":"mapping(uint32 => address)","numberOfBytes":"32","value":"t_address"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}}}},"contracts/ChugSplashManager.sol":{"ChugSplashManager":{"abi":[{"inputs":[{"internalType":"contract IChugSplashRegistry","name":"_registry","type":"address"},{"internalType":"address","name":"_create3","type":"address"},{"internalType":"contract IGasPriceCalculator","name":"_gasPriceCalculator","type":"address"},{"internalType":"contract IAccessControl","name":"_managedService","type":"address"},{"internalType":"uint256","name":"_executionLockTime","type":"uint256"},{"internalType":"uint256","name":"_ownerBondAmount","type":"uint256"},{"internalType":"uint256","name":"_executorPaymentPercentage","type":"uint256"},{"internalType":"uint256","name":"_protocolPaymentPercentage","type":"uint256"},{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"_version","type":"tuple"},{"internalType":"address","name":"_trustedForwarder","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ActionAlreadyExecuted","type":"error"},{"inputs":[],"name":"AmountMustBeGreaterThanZero","type":"error"},{"inputs":[],"name":"AnotherDeploymentInProgress","type":"error"},{"inputs":[],"name":"CallerIsNotOwner","type":"error"},{"inputs":[],"name":"CallerIsNotProposer","type":"error"},{"inputs":[],"name":"CallerIsNotRemoteExecutor","type":"error"},{"inputs":[],"name":"CallerIsNotSelectedExecutor","type":"error"},{"inputs":[],"name":"ContractDoesNotExist","type":"error"},{"inputs":[],"name":"DeploymentAlreadyClaimed","type":"error"},{"inputs":[],"name":"DeploymentIsNotApproved","type":"error"},{"inputs":[],"name":"DeploymentIsNotProposed","type":"error"},{"inputs":[],"name":"DeploymentStateIsNotProposable","type":"error"},{"inputs":[],"name":"EmptyActionsArray","type":"error"},{"inputs":[],"name":"FailedToFinalizeUpgrade","type":"error"},{"inputs":[],"name":"FailedToGetAddress","type":"error"},{"inputs":[],"name":"FailedToInitiateUpgrade","type":"error"},{"inputs":[],"name":"FinalizedUpgradeTooEarly","type":"error"},{"inputs":[],"name":"IncorrectNumberOfTargets","type":"error"},{"inputs":[],"name":"InitiatedUpgradeTooEarly","type":"error"},{"inputs":[],"name":"InsufficientExecutorDebt","type":"error"},{"inputs":[],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InsufficientOwnerBond","type":"error"},{"inputs":[],"name":"InvalidActionType","type":"error"},{"inputs":[],"name":"InvalidContractKind","type":"error"},{"inputs":[],"name":"InvalidMerkleProof","type":"error"},{"inputs":[],"name":"NoActiveDeployment","type":"error"},{"inputs":[],"name":"OnlyProxiesAllowed","type":"error"},{"inputs":[],"name":"ProxiesAreNotInitiated","type":"error"},{"inputs":[],"name":"ProxyExportFailed","type":"error"},{"inputs":[],"name":"RemoteExecutionDisabled","type":"error"},{"inputs":[],"name":"SetStorageFailed","type":"error"},{"inputs":[],"name":"WithdrawalFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"}],"name":"ChugSplashDeploymentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"actionsExecuted","type":"uint256"}],"name":"ChugSplashDeploymentCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"executor","type":"address"}],"name":"ChugSplashDeploymentClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"executor","type":"address"}],"name":"ChugSplashDeploymentCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"actionRoot","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"targetRoot","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"numActions","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numTargets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numImmutableContracts","type":"uint256"},{"indexed":false,"internalType":"string","name":"configUri","type":"string"},{"indexed":false,"internalType":"bool","name":"remoteExecution","type":"bool"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"}],"name":"ChugSplashDeploymentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"referenceNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"},{"indexed":false,"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"creationCodeWithArgsHash","type":"bytes32"}],"name":"ContractDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"referenceNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"},{"indexed":false,"internalType":"uint256","name":"actionIndex","type":"uint256"}],"name":"ContractDeploymentSkipped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"referenceNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"expectedAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"},{"indexed":false,"internalType":"uint256","name":"actionIndex","type":"uint256"}],"name":"DeploymentFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ETHDeposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"uint256","name":"withdrawn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"remaining","type":"uint256"}],"name":"ExecutorPaymentClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OwnerWithdrewETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"bool","name":"isProposer","type":"bool"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ProposerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"executor","type":"address"}],"name":"ProxiesInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":true,"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProxyExported","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":false,"internalType":"string","name":"projectName","type":"string"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"}],"name":"ProxyUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"uint256","name":"actionIndex","type":"uint256"}],"name":"SetProxyStorage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isManaged","type":"bool"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ToggledManagedProposals","type":"event"},{"inputs":[],"name":"activeDeploymentId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowManagedProposals","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_deploymentId","type":"bytes32"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelActiveChugSplashDeployment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDeployment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimExecutorPayment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"create3","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_deploymentId","type":"bytes32"}],"name":"deployments","outputs":[{"components":[{"internalType":"enum DeploymentStatus","name":"status","type":"uint8"},{"internalType":"bool[]","name":"actions","type":"bool[]"},{"internalType":"uint256","name":"targets","type":"uint256"},{"internalType":"bytes32","name":"actionRoot","type":"bytes32"},{"internalType":"bytes32","name":"targetRoot","type":"bytes32"},{"internalType":"uint256","name":"numImmutableContracts","type":"uint256"},{"internalType":"uint256","name":"actionsExecuted","type":"uint256"},{"internalType":"uint256","name":"timeClaimed","type":"uint256"},{"internalType":"address","name":"selectedExecutor","type":"address"},{"internalType":"bool","name":"remoteExecution","type":"bool"},{"internalType":"string","name":"configUri","type":"string"}],"internalType":"struct DeploymentState","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"enum ChugSplashActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"internalType":"string","name":"referenceName","type":"string"}],"internalType":"struct RawChugSplashAction[]","name":"_actions","type":"tuple[]"},{"internalType":"uint256[]","name":"_actionIndexes","type":"uint256[]"},{"internalType":"bytes32[][]","name":"_proofs","type":"bytes32[][]"}],"name":"executeActions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"projectName","type":"string"},{"internalType":"string","name":"referenceName","type":"string"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"}],"internalType":"struct ChugSplashTarget[]","name":"_targets","type":"tuple[]"},{"internalType":"bytes32[][]","name":"_targetProofs","type":"bytes32[][]"},{"components":[{"internalType":"enum ChugSplashActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"internalType":"string","name":"referenceName","type":"string"}],"internalType":"struct RawChugSplashAction[]","name":"_actions","type":"tuple[]"},{"internalType":"uint256[]","name":"_actionIndexes","type":"uint256[]"},{"internalType":"bytes32[][]","name":"_actionProofs","type":"bytes32[][]"}],"name":"executeEntireUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executionLockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"executorDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"executorPaymentPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_contractKindHash","type":"bytes32"},{"internalType":"address","name":"_newOwner","type":"address"}],"name":"exportProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"projectName","type":"string"},{"internalType":"string","name":"referenceName","type":"string"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"}],"internalType":"struct ChugSplashTarget[]","name":"_targets","type":"tuple[]"},{"internalType":"bytes32[][]","name":"_proofs","type":"bytes32[][]"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gasPriceCalculator","outputs":[{"internalType":"contract IGasPriceCalculator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_actionRoot","type":"bytes32"},{"internalType":"bytes32","name":"_targetRoot","type":"bytes32"},{"internalType":"uint256","name":"_numActions","type":"uint256"},{"internalType":"uint256","name":"_numTargets","type":"uint256"},{"internalType":"uint256","name":"_numImmutableContracts","type":"uint256"},{"internalType":"string","name":"_configUri","type":"string"},{"internalType":"bool","name":"_remoteExecution","type":"bool"}],"name":"gaslesslyPropose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_deploymentId","type":"bytes32"}],"name":"getSelectedExecutor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"projectName","type":"string"},{"internalType":"string","name":"referenceName","type":"string"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"}],"internalType":"struct ChugSplashTarget[]","name":"_targets","type":"tuple[]"},{"internalType":"bytes32[][]","name":"_proofs","type":"bytes32[][]"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isExecuting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isProposer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"forwarder","type":"address"}],"name":"isTrustedForwarder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managedService","outputs":[{"internalType":"contract IAccessControl","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"organizationID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerBondAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_actionRoot","type":"bytes32"},{"internalType":"bytes32","name":"_targetRoot","type":"bytes32"},{"internalType":"uint256","name":"_numActions","type":"uint256"},{"internalType":"uint256","name":"_numTargets","type":"uint256"},{"internalType":"uint256","name":"_numImmutableContracts","type":"uint256"},{"internalType":"string","name":"_configUri","type":"string"},{"internalType":"bool","name":"_remoteExecution","type":"bool"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"proposers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolPaymentPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IChugSplashRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"bool","name":"_isProposer","type":"bool"}],"name":"setProposer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleAllowManagedProposals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalExecutorDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalProtocolDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawOwnerETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_1106":{"entryPoint":null,"id":1106,"parameterSlots":1,"returnSlots":0},"@_5925":{"entryPoint":null,"id":5925,"parameterSlots":10,"returnSlots":0},"@_9021":{"entryPoint":null,"id":9021,"parameterSlots":3,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":183,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_contract$_IChugSplashRegistry_$9774t_addresst_contract$_IGasPriceCalculator_$9833t_contract$_IAccessControl_$2184t_uint256t_uint256t_uint256t_uint256t_struct$_Version_$5567_memory_ptrt_address_fromMemory":{"entryPoint":201,"id":null,"parameterSlots":2,"returnSlots":10},"validator_revert_contract_IChugSplashRegistry":{"entryPoint":158,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2101:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"80:86:61","statements":[{"body":{"nodeType":"YulBlock","src":"144:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"156:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"146:6:61"},"nodeType":"YulFunctionCall","src":"146:12:61"},"nodeType":"YulExpressionStatement","src":"146:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"103:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"114:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"129:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"134:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"125:3:61"},"nodeType":"YulFunctionCall","src":"125:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"138:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"121:3:61"},"nodeType":"YulFunctionCall","src":"121:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"110:3:61"},"nodeType":"YulFunctionCall","src":"110:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"100:2:61"},"nodeType":"YulFunctionCall","src":"100:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"93:6:61"},"nodeType":"YulFunctionCall","src":"93:50:61"},"nodeType":"YulIf","src":"90:70:61"}]},"name":"validator_revert_contract_IChugSplashRegistry","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"69:5:61","type":""}],"src":"14:152:61"},{"body":{"nodeType":"YulBlock","src":"231:99:61","statements":[{"nodeType":"YulAssignment","src":"241:22:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"256:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"250:5:61"},"nodeType":"YulFunctionCall","src":"250:13:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"241:5:61"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"318:5:61"}],"functionName":{"name":"validator_revert_contract_IChugSplashRegistry","nodeType":"YulIdentifier","src":"272:45:61"},"nodeType":"YulFunctionCall","src":"272:52:61"},"nodeType":"YulExpressionStatement","src":"272:52:61"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"210:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"221:5:61","type":""}],"src":"171:159:61"},{"body":{"nodeType":"YulBlock","src":"673:1426:61","statements":[{"nodeType":"YulVariableDeclaration","src":"683:33:61","value":{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"697:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"706:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"693:3:61"},"nodeType":"YulFunctionCall","src":"693:23:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"687:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"741:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"750:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"753:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"743:6:61"},"nodeType":"YulFunctionCall","src":"743:12:61"},"nodeType":"YulExpressionStatement","src":"743:12:61"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"732:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"736:3:61","type":"","value":"384"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"728:3:61"},"nodeType":"YulFunctionCall","src":"728:12:61"},"nodeType":"YulIf","src":"725:32:61"},{"nodeType":"YulVariableDeclaration","src":"766:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"785:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"779:5:61"},"nodeType":"YulFunctionCall","src":"779:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"770:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"850:5:61"}],"functionName":{"name":"validator_revert_contract_IChugSplashRegistry","nodeType":"YulIdentifier","src":"804:45:61"},"nodeType":"YulFunctionCall","src":"804:52:61"},"nodeType":"YulExpressionStatement","src":"804:52:61"},{"nodeType":"YulAssignment","src":"865:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"875:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"865:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"889:40:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"914:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"925:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"910:3:61"},"nodeType":"YulFunctionCall","src":"910:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"904:5:61"},"nodeType":"YulFunctionCall","src":"904:25:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"893:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"984:7:61"}],"functionName":{"name":"validator_revert_contract_IChugSplashRegistry","nodeType":"YulIdentifier","src":"938:45:61"},"nodeType":"YulFunctionCall","src":"938:54:61"},"nodeType":"YulExpressionStatement","src":"938:54:61"},{"nodeType":"YulAssignment","src":"1001:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1011:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1001:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1027:40:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1052:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1063:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1048:3:61"},"nodeType":"YulFunctionCall","src":"1048:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1042:5:61"},"nodeType":"YulFunctionCall","src":"1042:25:61"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"1031:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"1122:7:61"}],"functionName":{"name":"validator_revert_contract_IChugSplashRegistry","nodeType":"YulIdentifier","src":"1076:45:61"},"nodeType":"YulFunctionCall","src":"1076:54:61"},"nodeType":"YulExpressionStatement","src":"1076:54:61"},{"nodeType":"YulAssignment","src":"1139:17:61","value":{"name":"value_2","nodeType":"YulIdentifier","src":"1149:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1139:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1165:40:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1201:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1186:3:61"},"nodeType":"YulFunctionCall","src":"1186:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1180:5:61"},"nodeType":"YulFunctionCall","src":"1180:25:61"},"variables":[{"name":"value_3","nodeType":"YulTypedName","src":"1169:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_3","nodeType":"YulIdentifier","src":"1260:7:61"}],"functionName":{"name":"validator_revert_contract_IChugSplashRegistry","nodeType":"YulIdentifier","src":"1214:45:61"},"nodeType":"YulFunctionCall","src":"1214:54:61"},"nodeType":"YulExpressionStatement","src":"1214:54:61"},{"nodeType":"YulAssignment","src":"1277:17:61","value":{"name":"value_3","nodeType":"YulIdentifier","src":"1287:7:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1277:6:61"}]},{"nodeType":"YulAssignment","src":"1303:36:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1323:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1334:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1319:3:61"},"nodeType":"YulFunctionCall","src":"1319:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1313:5:61"},"nodeType":"YulFunctionCall","src":"1313:26:61"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1303:6:61"}]},{"nodeType":"YulAssignment","src":"1348:36:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1368:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1379:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1364:3:61"},"nodeType":"YulFunctionCall","src":"1364:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1358:5:61"},"nodeType":"YulFunctionCall","src":"1358:26:61"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1348:6:61"}]},{"nodeType":"YulAssignment","src":"1393:36:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1413:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1424:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1409:3:61"},"nodeType":"YulFunctionCall","src":"1409:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1403:5:61"},"nodeType":"YulFunctionCall","src":"1403:26:61"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"1393:6:61"}]},{"nodeType":"YulAssignment","src":"1438:36:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1458:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1469:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1454:3:61"},"nodeType":"YulFunctionCall","src":"1454:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1448:5:61"},"nodeType":"YulFunctionCall","src":"1448:26:61"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"1438:6:61"}]},{"body":{"nodeType":"YulBlock","src":"1513:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1522:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1525:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1515:6:61"},"nodeType":"YulFunctionCall","src":"1515:12:61"},"nodeType":"YulExpressionStatement","src":"1515:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1494:2:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1502:3:61","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1498:3:61"},"nodeType":"YulFunctionCall","src":"1498:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1490:3:61"},"nodeType":"YulFunctionCall","src":"1490:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"1509:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1486:3:61"},"nodeType":"YulFunctionCall","src":"1486:26:61"},"nodeType":"YulIf","src":"1483:46:61"},{"nodeType":"YulVariableDeclaration","src":"1538:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1558:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1552:5:61"},"nodeType":"YulFunctionCall","src":"1552:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1542:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1570:33:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1592:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1600:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1588:3:61"},"nodeType":"YulFunctionCall","src":"1588:15:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1574:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1686:111:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1707:1:61","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1714:3:61","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1719:10:61","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1710:3:61"},"nodeType":"YulFunctionCall","src":"1710:20:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1700:6:61"},"nodeType":"YulFunctionCall","src":"1700:31:61"},"nodeType":"YulExpressionStatement","src":"1700:31:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1751:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1754:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1744:6:61"},"nodeType":"YulFunctionCall","src":"1744:15:61"},"nodeType":"YulExpressionStatement","src":"1744:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1779:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1782:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1772:6:61"},"nodeType":"YulFunctionCall","src":"1772:15:61"},"nodeType":"YulExpressionStatement","src":"1772:15:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1621:10:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1641:2:61","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1645:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1637:3:61"},"nodeType":"YulFunctionCall","src":"1637:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"1649:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1633:3:61"},"nodeType":"YulFunctionCall","src":"1633:18:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1618:2:61"},"nodeType":"YulFunctionCall","src":"1618:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1657:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1669:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1654:2:61"},"nodeType":"YulFunctionCall","src":"1654:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1615:2:61"},"nodeType":"YulFunctionCall","src":"1615:62:61"},"nodeType":"YulIf","src":"1612:185:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1813:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1817:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1806:6:61"},"nodeType":"YulFunctionCall","src":"1806:22:61"},"nodeType":"YulExpressionStatement","src":"1806:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1844:6:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1862:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1873:3:61","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1858:3:61"},"nodeType":"YulFunctionCall","src":"1858:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1852:5:61"},"nodeType":"YulFunctionCall","src":"1852:26:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1837:6:61"},"nodeType":"YulFunctionCall","src":"1837:42:61"},"nodeType":"YulExpressionStatement","src":"1837:42:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1899:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1907:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1895:3:61"},"nodeType":"YulFunctionCall","src":"1895:15:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1922:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1933:3:61","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1918:3:61"},"nodeType":"YulFunctionCall","src":"1918:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1912:5:61"},"nodeType":"YulFunctionCall","src":"1912:26:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1888:6:61"},"nodeType":"YulFunctionCall","src":"1888:51:61"},"nodeType":"YulExpressionStatement","src":"1888:51:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1959:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1967:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1955:3:61"},"nodeType":"YulFunctionCall","src":"1955:15:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1982:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1993:3:61","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1978:3:61"},"nodeType":"YulFunctionCall","src":"1978:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1972:5:61"},"nodeType":"YulFunctionCall","src":"1972:26:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1948:6:61"},"nodeType":"YulFunctionCall","src":"1948:51:61"},"nodeType":"YulExpressionStatement","src":"1948:51:61"},{"nodeType":"YulAssignment","src":"2008:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2018:6:61"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"2008:6:61"}]},{"nodeType":"YulAssignment","src":"2033:60:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2077:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2088:3:61","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2073:3:61"},"nodeType":"YulFunctionCall","src":"2073:19:61"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"2043:29:61"},"nodeType":"YulFunctionCall","src":"2043:50:61"},"variableNames":[{"name":"value9","nodeType":"YulIdentifier","src":"2033:6:61"}]}]},"name":"abi_decode_tuple_t_contract$_IChugSplashRegistry_$9774t_addresst_contract$_IGasPriceCalculator_$9833t_contract$_IAccessControl_$2184t_uint256t_uint256t_uint256t_uint256t_struct$_Version_$5567_memory_ptrt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"567:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"578:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"590:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"598:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"606:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"614:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"622:6:61","type":""},{"name":"value5","nodeType":"YulTypedName","src":"630:6:61","type":""},{"name":"value6","nodeType":"YulTypedName","src":"638:6:61","type":""},{"name":"value7","nodeType":"YulTypedName","src":"646:6:61","type":""},{"name":"value8","nodeType":"YulTypedName","src":"654:6:61","type":""},{"name":"value9","nodeType":"YulTypedName","src":"662:6:61","type":""}],"src":"335:1764:61"}]},"contents":"{\n    { }\n    function validator_revert_contract_IChugSplashRegistry(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_contract_IChugSplashRegistry(value)\n    }\n    function abi_decode_tuple_t_contract$_IChugSplashRegistry_$9774t_addresst_contract$_IGasPriceCalculator_$9833t_contract$_IAccessControl_$2184t_uint256t_uint256t_uint256t_uint256t_struct$_Version_$5567_memory_ptrt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 384) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IChugSplashRegistry(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IChugSplashRegistry(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_contract_IChugSplashRegistry(value_2)\n        value2 := value_2\n        let value_3 := mload(add(headStart, 96))\n        validator_revert_contract_IChugSplashRegistry(value_3)\n        value3 := value_3\n        value4 := mload(add(headStart, 128))\n        value5 := mload(add(headStart, 160))\n        value6 := mload(add(headStart, 192))\n        value7 := mload(add(headStart, 224))\n        if slt(add(_1, not(255)), 96) { revert(0, 0) }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 96)\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x41)\n            revert(0, 0x24)\n        }\n        mstore(64, newFreePtr)\n        mstore(memPtr, mload(add(headStart, 256)))\n        mstore(add(memPtr, 32), mload(add(headStart, 288)))\n        mstore(add(memPtr, 64), mload(add(headStart, 320)))\n        value8 := memPtr\n        value9 := abi_decode_address_fromMemory(add(headStart, 352))\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6102006040523480156200001257600080fd5b506040516200636b3803806200636b8339810160408190526200003591620000c9565b8151602083015160409093015160809190915260a09290925260c0919091526001600160a01b0390811660e05297881661010052958716610120529386166101405291909416610160526101a093909352610180929092526101c0919091526101e052620001da565b6001600160a01b0381168114620000b457600080fd5b50565b8051620000c4816200009e565b919050565b6000806000806000806000806000808a8c03610180811215620000eb57600080fd5b8b51620000f8816200009e565b60208d0151909b506200010b816200009e565b60408d0151909a506200011e816200009e565b60608d015190995062000131816200009e565b8098505060808c0151965060a08c0151955060c08c0151945060e08c01519350606060ff19820112156200016457600080fd5b50604051606081016001600160401b03811182821017156200019657634e487b7160e01b600052604160045260246000fd5b60409081526101008d015182526101208d015160208301526101408d0151908201529150620001c96101608c01620000b7565b90509295989b9194979a5092959850565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615fe762000384600039600081816106340152613f4c01526000818161088c0152613f0101526000818161097e01528181610f29015261112c01526000818161044f01528181611164015281816111c70152818161296b0152818161454601526145a90152600081816108e001528181610d8601528181611432015281816118410152611be30152600081816103be0152818161372d0152613e370152600081816107af0152818161408901526142d8015260008181610345015281816106a80152818161105a015281816112a301528181611596015281816117d401528181611ccf01528181611ff701528181612254015281816123a601528181612adc01528181612d5a01528181612eab0152818161317c015281816133a4015281816136cc0152818161426a015281816144db0152818161463d01528181614789015281816148790152614b16015260008181610557015281816138250152614d7d01526000611389015260006113630152600061133d0152615fe76000f3fe6080604052600436106102bf5760003560e01c80639a20ba781161016e578063ef9fe8e4116100cb578063f2fde38b1161007f578063fc7b9c1811610064578063fc7b9c1814610937578063fd95a3be1461094c578063fff81d4c1461096c57600080fd5b8063f2fde38b14610902578063f40c7c4c1461092257600080fd5b8063f220aca9116100b0578063f220aca91461087a578063f23d6142146108ae578063f2a7208d146108ce57600080fd5b8063ef9fe8e41461084a578063f03171111461086457600080fd5b8063bd8bcd8911610122578063dfba66f011610107578063dfba66f0146107fd578063e8ea2d0814610813578063e9ed9b641461082a57600080fd5b8063bd8bcd89146107d1578063c6eb84e5146107e757600080fd5b8063a53a1adf11610153578063a53a1adf1461075d578063a7882f931461077d578063bae4b95f1461079d57600080fd5b80639a20ba7814610728578063a47d08011461073d57600080fd5b8063715018a61161021c57806379e6f49a116101d05780638da5cb5b116101b55780638da5cb5b146106ca57806391e219ae146106e85780639449a44f1461070857600080fd5b806379e6f49a146106765780637b1039991461069657600080fd5b806374ec29a01161020157806374ec29a0146106025780637521120f1461062257806375cd65e11461065657600080fd5b8063715018a6146105c057806373b4a738146105d557600080fd5b80634731d48c1161027357806354fd4d501161025857806354fd4d5014610503578063572b6c051461053a57806361f5499f1461058757600080fd5b80634731d48c146104d95780635229c975146104ee57600080fd5b80632e0a6960116102a45780632e0a69601461043d578063374040171461047f578063439fab91146104ac57600080fd5b80630523a04c146103ac57806318177497146103fd57600080fd5b366103a757346102cd6109a0565b6001600160a01b03167f6c703791f399558807424f489ccd811c72b4ff0b74af547264fad7c646776df060405160405180910390a360405163ea0a523760e01b815260206004820152600c60248201527f4554484465706f7369746564000000000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b15801561039157600080fd5b505af11580156103a5573d6000803e3d6000fd5b005b600080fd5b3480156103b857600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561040957600080fd5b5061042d610418366004614e9e565b60ca6020526000908152604090205460ff1681565b60405190151581526020016103f4565b34801561044957600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016103f4565b34801561048b57600080fd5b5061049f61049a366004614ebb565b6109af565b6040516103f49190614fac565b3480156104b857600080fd5b506104cc6104c736600461517b565b610bc6565b6040516103f491906151b8565b3480156104e557600080fd5b506103a5610d84565b3480156104fa57600080fd5b506103a56110c1565b34801561050f57600080fd5b5061051861130c565b60408051825181526020808401519082015291810151908201526060016103f4565b34801561054657600080fd5b5061042d610555366004614e9e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b34801561059357600080fd5b506103e06105a2366004614ebb565b600090815260cb60205260409020600801546001600160a01b031690565b3480156105cc57600080fd5b506103a56113b0565b3480156105e157600080fd5b506104716105f0366004614e9e565b60c96020526000908152604090205481565b34801561060e57600080fd5b5061042d61061d366004614e9e565b6113c4565b34801561062e57600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b34801561066257600080fd5b506103a56106713660046151db565b6114de565b34801561068257600080fd5b506103a5610691366004614ebb565b61183f565b3480156106a257600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d657600080fd5b506033546001600160a01b03166103e0565b3480156106f457600080fd5b506103a56107033660046155b0565b611d38565b34801561071457600080fd5b506103a5610723366004615682565b611d5e565b34801561073457600080fd5b506103a56122e5565b34801561074957600080fd5b506103a56107583660046156e6565b61240d565b34801561076957600080fd5b506103a5610778366004614ebb565b61292b565b34801561078957600080fd5b506103a561079836600461577c565b612b13565b3480156107a957600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b3480156107dd57600080fd5b5061047160cf5481565b3480156107f357600080fd5b5061047160ce5481565b34801561080957600080fd5b5061047160cd5481565b34801561081f57600080fd5b5060cd54151561042d565b34801561083657600080fd5b506103a56108453660046157fe565b612e33565b34801561085657600080fd5b5060d05461042d9060ff1681565b34801561087057600080fd5b5061047160cc5481565b34801561088657600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b3480156108ba57600080fd5b506103a56108c9366004615682565b612f1b565b3480156108da57600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b34801561090e57600080fd5b506103a561091d366004614e9e565b6134a7565b34801561092e57600080fd5b506103a5613537565b34801561094357600080fd5b50610471613703565b34801561095857600080fd5b506103a561096736600461577c565b613715565b34801561097857600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b60006109aa613821565b905090565b604080516101608101825260008082526060602083018190529282018190528282018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820152610140810191909152600082815260cb602052604090819020815161016081019092528054829060ff166006811115610a3957610a39614ed4565b6006811115610a4a57610a4a614ed4565b815260200160018201805480602002602001604051908101604052809291908181526020018280548015610abd57602002820191906000526020600020906000905b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411610a8c5790505b505050918352505060028201546020820152600382015460408201526004820154606082015260058201546080820152600682015460a0820152600782015460c082015260088201546001600160a01b03811660e0830152600160a01b900460ff16151561010082015260098201805461012090920191610b3d90615837565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6990615837565b8015610bb65780601f10610b8b57610100808354040283529160200191610bb6565b820191906000526020600020905b815481529060010190602001808311610b9957829003601f168201915b5050505050815250509050919050565b600054606090610100900460ff1615808015610be95750600054600160ff909116105b80610c035750303b158015610c03575060005460ff166001145b610c7a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff191660011790558015610cba57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600080600085806020019051810190610cd39190615884565b60cc82905560d0805460ff191682151517905591945092509050610cf5613883565b610cfd613908565b610d068361398d565b6040518060200160405280600081525094505050508015610d7e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391d148547f9e982efbc2164e40fcd14da9a0408a971e4224cb50a113d83b1c90cd8c1434dd610ddc6109a0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610e3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6291906158bc565b610e98576040517f6696fa8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd54610ed1576040517f5f0825a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd54600090815260cb602052604090206008810154600160a01b900460ff16610f27576040517f0bb3291200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008160070154610f579190615908565b4211610f8f576040517f7ea3c87d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426007820155610f9d6109a0565b6008820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055610fdf6109a0565b6001600160a01b031660cd547fdef501073bf641ebc9528324e0366c9737f17823fa009980717ec55df3b05f2060405160405180910390a360405163ea0a523760e01b815260206004820152601b60248201527f4368756753706c6173684465706c6f796d656e74436c61696d6564000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b5050505050565b6110c96139f7565b60cd54611102576040517f5f0825a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd54600090815260cb602052604090206008810154600160a01b900460ff16801561115d5750427f0000000000000000000000000000000000000000000000000000000000000000826007015461115a9190615908565b10155b156111fd577f000000000000000000000000000000000000000000000000000000000000000060c9600061118f6109a0565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111be9190615908565b925050819055507f000000000000000000000000000000000000000000000000000000000000000060ce60008282546111f79190615908565b90915550505b60cd80546000909155815460ff191660051782556112196109a0565b6001600160a01b0316817f6e376540abc69ea2aba618baf9970a40a410209797848ac685c0d5e321536c96846006015460405161125891815260200190565b60405180910390a360405163ea0a523760e01b815260206004820152601d60248201527f4368756753706c6173684465706c6f796d656e7443616e63656c6c656400000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a5237906064015b600060405180830381600087803b1580156112f057600080fd5b505af1158015611304573d6000803e3d6000fd5b505050505050565b61133060405180606001604052806000815260200160008152602001600081525090565b60405180606001604052807f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815250905090565b6113b86139f7565b6113c2600061398d565b565b60d05460009060ff16801561149d57506040517f91d148540000000000000000000000000000000000000000000000000000000081527f1036d397acc4220751130e8fcc4ce6cb991a324073d229f09e751ac8624f19c060048201526001600160a01b0383811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149d91906158bc565b806114c057506001600160a01b038216600090815260ca602052604090205460ff165b806114d857506033546001600160a01b038381169116145b92915050565b6114e66139f7565b826001600160a01b03163b60000361152a576040517f58796ea800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd5415611564576040517f318cf47900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f72c6838f000000000000000000000000000000000000000000000000000000008152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906372c6838f90602401602060405180830381865afa1580156115e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116099190615920565b90506001600160a01b03811661164b576040517f6602115a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383811682528491908616907f6828050ff1390d9c84304db69d7669bdc13a1df9715cedf6fe1eeb0bec3843ea9060200160405180910390a36040516001600160a01b03858116602483015283811660448301526000919083169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7eff275e0000000000000000000000000000000000000000000000000000000017905251611716919061593d565b600060405180830381855af49150503d8060008114611751576040519150601f19603f3d011682016040523d82523d6000602084013e611756565b606091505b5050905080611791576040517fed9af69100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405163ea0a523760e01b815260206004820152600d60248201527f50726f78794578706f727465640000000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b15801561182057600080fd5b505af1158015611834573d6000803e3d6000fd5b505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391d148547f9e982efbc2164e40fcd14da9a0408a971e4224cb50a113d83b1c90cd8c1434dd6118976109a0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d91906158bc565b611953576040517f6696fa8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060000361198d576040517f5e85ae7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c9600061199a6109a0565b6001600160a01b03166001600160a01b031681526020019081526020016000205410156119f3576040517fc70453ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4760cf5482611a029190615908565b1115611a3a576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c96000611a476109a0565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611a769190615959565b925050819055508060ce6000828254611a8f9190615959565b90915550611a9d90506109a0565b6001600160a01b03167fba98915499c19898a23f510deeaa915637d1b5d537df51dc105d01b8e69be7e28260c96000611ad46109a0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054604051611b0c929190918252602082015260400190565b60405180910390a26000611b1e6109a0565b604080516000815260208101918290526001600160a01b0392909216918491611b47919061593d565b60006040518083038185875af1925050503d8060008114611b84576040519150601f19603f3d011682016040523d82523d6000602084013e611b89565b606091505b5050905080611bc4576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cf546040805160008082526020820192839052926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929091611c0f9161593d565b60006040518083038185875af1925050503d8060008114611c4c576040519150601f19603f3d011682016040523d82523d6000602084013e611c51565b606091505b5050905080611c8c576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405163ea0a523760e01b815260206004820152601660248201527f4578656375746f725061796d656e74436c61696d65640000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b158015611d1b57600080fd5b505af1158015611d2f573d6000803e3d6000fd5b50505050505050565b611d428585611d5e565b825115611d5457611d5483838361240d565b6110ba8585612f1b565b611d66613a70565b60005a60cd54600090815260cb60205260409020600881015491925090611d9690600160a01b900460ff16613ac9565b8060050154816006015414611dd7576040517f415522d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002815460ff166006811115611def57611def614ed4565b14611e26576040517fcb6f6ae400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835160028201548114611e65576040517f4f838f7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a081018252606080825260208201819052600092820183905281018290526080810191909152606060005b838110156121c557878181518110611eaf57611eaf615970565b60200260200101519250868181518110611ecb57611ecb615970565b602002602001015191507f1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed693836080015103611f32576040517fc0e6f38000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f89856004015484600001518560200151866040015187606001518860800151604051602001611f6795949392919061599f565b6040516020818303038152906040528051906020012083858960020154613bbd565b611fbf576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808301516040517f72c6838f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916372c6838f9161202e9160040190815260200190565b602060405180830381865afa15801561204b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206f9190615920565b90506001600160a01b0381166120b1576040517f6602115a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408085015190516001600160a01b03918216602482015260009183169060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f479aa9270000000000000000000000000000000000000000000000000000000017905251612135919061593d565b600060405180830381855af49150503d8060008114612170576040519150601f19603f3d011682016040523d82523d6000602084013e612175565b606091505b50509050806121b0576040517f3fb523ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505080806121bd906159e9565b915050611e95565b50835460ff191660031784556121d96109a0565b6001600160a01b031660cd547fbfea78bd2c6eb373d1bf039c60bc8b42be83b67fb39c2a2bc60b18d5883897d960405160405180910390a360405163ea0a523760e01b815260206004820152601060248201527f50726f78696573496e697469617465640000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156122a057600080fd5b505af11580156122b4573d6000803e3d6000fd5b5050505060088401546122d2908690600160a01b900460ff16613e2a565b50505050506122e16001606555565b5050565b6122ed6139f7565b60d0805460ff19811660ff909116151790556123076109a0565b60d05460405160ff909116151581526001600160a01b0391909116907fadea028b90fc36108cad0d47879e8f5e0efa35bc21ad2fcf625e4ce56aff3b4b9060200160405180910390a260d0546040805160ff909216151560f81b60208301528051600181840301815260218301918290527ff52cc7fd000000000000000000000000000000000000000000000000000000009091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f52cc7fd916123d991602501615a03565b600060405180830381600087803b1580156123f357600080fd5b505af1158015612407573d6000803e3d6000fd5b50505050565b612415613a70565b60005a60cd54600090815260cb6020526040902060088101549192509061244590600160a01b900460ff16613ac9565b84516000819003612482576040517f03250eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825260008082526060602083018190529282018190528282015260808101919091526000606060005b848110156128fb578981815181106124cd576124cd615970565b602002602001015193508881815181106124e9576124e9615970565b6020026020010151925087818151811061250557612505615970565b6020026020010151915085600101838154811061252457612524615970565b90600052602060002090602091828204019190069054906101000a900460ff161561257b576040517f6d41cd6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125d58660030154856080015186604001518760000151886060015189602001516040516020016125b0959493929190615a4a565b6040516020818303038152906040528051906020012085858a60010180549050613bbd565b61260b576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60068601805490600061261d836159e9565b9190505550600186600101848154811061263957612639615970565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555060018081111561267457612674614ed4565b8451600181111561268757612687614ed4565b036126e55761269786858561400d565b600186015460068701541480156126b057506002860154155b80156126d257506006865460ff1660068111156126cf576126cf614ed4565b14155b156126e0576126e0866146fb565b6128e9565b6000845160018111156126fa576126fa614ed4565b036128b75760408051610160810190915286546126e091908890829060ff16600681111561272a5761272a614ed4565b600681111561273b5761273b614ed4565b8152602001600182018054806020026020016040519081016040528092919081815260200182805480156127ae57602002820191906000526020600020906000905b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161277d5790505b505050918352505060028201546020820152600382015460408201526004820154606082015260058201546080820152600682015460a0820152600782015460c082015260088201546001600160a01b03811660e0830152600160a01b900460ff1615156101008201526009820180546101209092019161282e90615837565b80601f016020809104026020016040519081016040528092919081815260200182805461285a90615837565b80156128a75780601f1061287c576101008083540402835291602001916128a7565b820191906000526020600020905b81548152906001019060200180831161288a57829003601f168201915b50505050508152505085856147f5565b6040517f88dd20d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806128f3816159e9565b9150506124b3565b506008850154612916908790600160a01b900460ff16613e2a565b5050505050506129266001606555565b505050565b6129336139f7565b600081815260cb602052604090206008810154600160a01b900460ff168015612962575061295f613703565b47115b801561299e57507f0000000000000000000000000000000000000000000000000000000000000000612992613703565b61299c9047615959565b105b156129d5576040517f69c00fad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001815460ff1660068111156129ed576129ed614ed4565b14612a24576040517f50feacf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd5415612a5e576040517f318cf47900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd829055805460ff1916600217815560405182907f78f2b31e40dca1f52e437b553603e30b4916085657201b5792894208d3e918c190600090a260405163ea0a523760e01b815260206004820152601c60248201527f4368756753706c6173684465706c6f796d656e74417070726f7665640000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a5237906064016112d6565b612b1e61061d6109a0565b612b54576040517f70f3b56f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000878787878787604051602001612b7196959493929190615aa6565b60408051601f198184030181529181528151602092830120600081815260cb90935290822080549193509160ff90911690816006811115612bb457612bb4614ed4565b14158015612bd457506004816006811115612bd157612bd1614ed4565b14155b8015612bf257506005816006811115612bef57612bef614ed4565b14155b8015612c1057506006816006811115612c0d57612c0d614ed4565b14155b15612c47576040517fb1c30cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815460ff19166001178255600382018a905560048201899055600582018690558767ffffffffffffffff811115612c8057612c80615074565b604051908082528060200260200182016040528015612ca9578160200160208202803683370190505b508051612cc0916001850191602090910190614dcf565b50600282018790556008820180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b8615150217905560098201612d0a8682615b1d565b50827f2efcc05790a2408b85fd4ac0d2eb6ff0b3a28c02913b5772b38206eeaf7e1aaa8b8b8b8b8b8b8b612d3c6109a0565b604051612d50989796959493929190615bdd565b60405180910390a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd612d8f6109a0565b604051602001612dca919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401612df59190615c35565b600060405180830381600087803b158015612e0f57600080fd5b505af1158015612e23573d6000803e3d6000fd5b5050505050505050505050505050565b612e3b6139f7565b6001600160a01b038216600090815260ca60205260409020805460ff1916821515179055612e676109a0565b6001600160a01b0316811515836001600160a01b03167f0b9a24ac05b182ed15b84d4b2c08ef4a709487d65220beebcb8190410fff5a8460405160405180910390a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd82604051602001612ef091151560f81b815260010190565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016112d69190615c7c565b612f23613a70565b60005a60cd54600090815260cb60205260409020600881015491925090612f5390600160a01b900460ff16613ac9565b60cd54612f8c576040517f5f0825a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001810154600682015414612fcd576040517ffbd9e67500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83516002820154811461300c576040517f4f838f7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a081018252606080825260208201819052600092820183905281018290526080810191909152606060005b838110156134835787818151811061305657613056615970565b6020026020010151925086818151811061307257613072615970565b602002602001015191507f1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed6938360800151036130d9576040517fc0e6f38000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61310e856004015484600001518560200151866040015187606001518860800151604051602001611f6795949392919061599f565b613144576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808301516040517f72c6838f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916372c6838f916131b39160040190815260200190565b602060405180830381865afa1580156131d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f49190615920565b90506001600160a01b038116613236576040517f6602115a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816001600160a01b0316856040015186606001516040516024016132729291906001600160a01b0392831681529116602082015260400190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f192957c800000000000000000000000000000000000000000000000000000000179052516132d5919061593d565b600060405180830381855af49150503d8060008114613310576040519150601f19603f3d011682016040523d82523d6000602084013e613315565b606091505b5050905080613350576040517fd764f04e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84604001516001600160a01b031660cd547f7e1bc64dc0005c076de7c8597ca19cde8e68d0d0a28a32d75bc7934cffdafe888760000151886020015160405161339a929190615cc3565b60405180910390a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd8660400151604051602001613411919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161343c9190615cf1565b600060405180830381600087803b15801561345657600080fd5b505af115801561346a573d6000803e3d6000fd5b505050505050808061347b906159e9565b91505061303c565b5061348d846146fb565b60088401546122d2908690600160a01b900460ff16613e2a565b6134af6139f7565b6001600160a01b03811661352b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c71565b6135348161398d565b50565b61353f6139f7565b60cd5415613579576040517f318cf47900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613583613703565b61358d9047615959565b90506135976109a0565b6001600160a01b03167f889d16c2f05ed249633dadc4c5c2aa8eeb677384800475aaf313cad7707e9e19826040516135d191815260200190565b60405180910390a260006135e36109a0565b604080516000815260208101918290526001600160a01b039290921691849161360c919061593d565b60006040518083038185875af1925050503d8060008114613649576040519150601f19603f3d011682016040523d82523d6000602084013e61364e565b606091505b5050905080613689576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405163ea0a523760e01b815260206004820152601060248201527f4f776e657257697468647265774554480000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a5237906064016112d6565b600060cf5460ce546109aa9190615908565b60005a905061372988888888888888612b13565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663455259cb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ad9190615d38565b905060006137b9614b76565b6137c591506010615d51565b905060005a846137d884620186a0615908565b6137e29190615908565b6137ec9190615959565b905060006137fa8285615d51565b90508060cf600082825461380e9190615908565b9091555050505050505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361387e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b503390565b600054610100900460ff166139005760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b6113c2614b89565b600054610100900460ff166139855760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b6113c2614c06565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6139ff6109a0565b6001600160a01b0316613a1a6033546001600160a01b031690565b6001600160a01b0316146113c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c71565b600260655403613ac25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c71565b6002606555565b6001811515148015613b175750613ade6109a0565b6001600160a01b0316613b0b60cd54600090815260cb60205260409020600801546001600160a01b031690565b6001600160a01b031614155b15613b4e576040517f06ee429500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80158015613b865750613b5f6109a0565b6001600160a01b0316613b7a6033546001600160a01b031690565b6001600160a01b031614155b15613534576040517f6db2465f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808211613c345760405162461bcd60e51b815260206004820152603760248201527f4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d757360448201527f742062652067726561746572207468616e207a65726f2e0000000000000000006064820152608401610c71565b818410613ca85760405162461bcd60e51b8152602060048201526024808201527f4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f7560448201527f6e64732e000000000000000000000000000000000000000000000000000000006064820152608401610c71565b613cb182614c93565b835114613d4c5760405162461bcd60e51b815260206004820152604d60248201527f4c69625f4d65726b6c65547265653a20546f74616c207369626c696e6773206460448201527f6f6573206e6f7420636f72726563746c7920636f72726573706f6e6420746f2060648201527f746f74616c206c65617665732e00000000000000000000000000000000000000608482015260a401610c71565b8460005b8451811015613e1d5785600116600103613db657848181518110613d7657613d76615970565b602002602001015182604051602001613d99929190918252602082015260400190565b604051602081830303815290604052805190602001209150613e04565b81858281518110613dc957613dc9615970565b6020026020010151604051602001613deb929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b60019590951c9480613e15816159e9565b915050613d50565b5090951495945050505050565b80613e33575050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663455259cb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb79190615d38565b90506000613ec3614b76565b613ecf91506010615d51565b905060005a85613ee284620186a0615908565b613eec9190615908565b613ef69190615959565b905060006064613f267f000000000000000000000000000000000000000000000000000000000000000082615908565b613f308487615d51565b613f3a9190615d51565b613f449190615d70565b9050600060647f0000000000000000000000000000000000000000000000000000000000000000613f758588615d51565b613f7f9190615d51565b613f899190615d70565b90508160ce6000828254613f9d9190615908565b9091555082905060c96000613fb06109a0565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254613fdf9190615908565b925050819055508060cf6000828254613ff89190615908565b909155505050505050505050565b6001606555565b6002835460ff16600681111561402557614025614ed4565b1461405c576040517fcb6f6ae400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008083602001518060200190518101906140779190615df0565b915091506000846080015190506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856040516024016140c491815260200190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f21f8a7210000000000000000000000000000000000000000000000000000000017905251614127919061593d565b600060405180830381855af49150503d8060008114614162576040519150601f19603f3d011682016040523d82523d6000602084013e614167565b606091505b5091509150816141a3576040517fda45f5f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818060200190518101906141b99190615920565b90506001600160a01b0381163b156142d35760cd54816001600160a01b0316856040516141e6919061593d565b60405180910390207fdc12392bc0b29f679ba6e7c5f560dd5735a9909ee29c4b345ef19df2c623b1b0878b60405161421f929190615e2d565b60405180910390a460405163ea0a523760e01b815260206004820152601960248201527f436f6e74726163744465706c6f796d656e74536b69707065640000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156142b657600080fd5b505af11580156142ca573d6000803e3d6000fd5b50505050611834565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168888600060405160240161431693929190615e4f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc7aeef0f0000000000000000000000000000000000000000000000000000000017905251614379919061593d565b600060405180830381855af49150503d80600081146143b4576040519150601f19603f3d011682016040523d82523d6000602084013e6143b9565b606091505b509150915081866040516020016143d09190615e78565b604051602081830303815290604052906143fd5760405162461bcd60e51b8152600401610c7191906151b8565b506000818060200190518101906144149190615920565b9050806001600160a01b0316846001600160a01b0316036145445760cd54816001600160a01b03168860405161444a919061593d565b60405180910390207fa5f92178a767e4250cb11280da2b868af52f7dbe6194258920d017e1d30cd7798a8f606001518d8051906020012060405161449093929190615ebd565b60405180910390a460405163ea0a523760e01b815260206004820152601060248201527f436f6e74726163744465706c6f7965640000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b15801561452757600080fd5b505af115801561453b573d6000803e3d6000fd5b505050506146ed565b7f000000000000000000000000000000000000000000000000000000000000000060c960006145716109a0565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546145a09190615908565b925050819055507f000000000000000000000000000000000000000000000000000000000000000060ce60008282546145d99190615908565b909155505060cd546040516001600160a01b038616906145fa908a9061593d565b60405180910390207fb56435b217b7b283698159b613df8b2b5d3c9eb8a9cf2abd2762d0b9d08c098b8a8e604051614633929190615e2d565b60405180910390a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd60cd5460405160200161467f91815260200190565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016146aa9190615ee2565b600060405180830381600087803b1580156146c457600080fd5b505af11580156146d8573d6000803e3d6000fd5b5050600060cd5550508b5460ff19166006178c555b505050505050505050505050565b805460ff1916600417815561470e6109a0565b6001600160a01b031660cd547f745f3f165a11892e95c826e15a0e3f1edebd0c600775d4e34e41d08f0c73ecf260405160405180910390a360405163ea0a523760e01b815260206004820152601d60248201527f4368756753706c6173684465706c6f796d656e74436f6d706c6574656400000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156147d557600080fd5b505af11580156147e9573d6000803e3d6000fd5b5050600060cd55505050565b60038351600681111561480a5761480a614ed4565b14614841576040517fb38cba4800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608201516040517f72c6838f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916372c6838f916148b09160040190815260200190565b602060405180830381865afa1580156148cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148f19190615920565b90507f1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed693836060015103614950576040517fc0e6f38000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000856020015180602001905181019061496d9190615f29565b9250925092506000846001600160a01b0316876040015185858560405160240161499a9493929190615f7f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9bc6ee9a00000000000000000000000000000000000000000000000000000000179052516149fd919061593d565b600060405180830381855af49150503d8060008114614a38576040519150601f19603f3d011682016040523d82523d6000602084013e614a3d565b606091505b5050905080614a78576040517fac5785a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614a806109a0565b6001600160a01b031687604001516001600160a01b031660cd547f572ca77d05d5995d2382e9e3b5f4819a396a2b7914dd3cb9a81070b9dbe1e2f589604051614acb91815260200190565b60405180910390a460405163ea0a523760e01b815260206004820152600f60248201527f53657450726f787953746f72616765000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b158015614b6257600080fd5b505af11580156146ed573d6000803e3d6000fd5b366000614b81614d78565b915091509091565b600054610100900460ff166140065760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b600054610100900460ff16614c835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b6113c2614c8e6109a0565b61398d565b6000808211614d0a5760405162461bcd60e51b815260206004820152603060248201527f4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d70757465206360448201527f65696c286c6f675f3229206f6620302e000000000000000000000000000000006064820152608401610c71565b81600103614d1a57506000919050565b81600060805b60018110614d585780614d36600180831b615959565b901b831615614d5057614d498183615908565b92811c9291505b60011c614d20565b506001811b8414614d7157614d6e600182615908565b90505b9392505050565b3660007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303614dc75760008036614dba601482615959565b92614b8193929190615fb0565b600036614b81565b82805482825590600052602060002090601f01602090048101928215614e645791602002820160005b83821115614e3557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302614df8565b8015614e625782816101000a81549060ff0219169055600101602081600001049283019260010302614e35565b505b50614e70929150614e74565b5090565b5b80821115614e705760008155600101614e75565b6001600160a01b038116811461353457600080fd5b600060208284031215614eb057600080fd5b8135614d7181614e89565b600060208284031215614ecd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60078110614f1357614f13614ed4565b9052565b600081518084526020808501945080840160005b83811015614f49578151151587529582019590820190600101614f2b565b509495945050505050565b60005b83811015614f6f578181015183820152602001614f57565b838111156124075750506000910152565b60008151808452614f98816020860160208601614f54565b601f01601f19169290920160200192915050565b60208152614fbe602082018351614f03565b60006020830151610160806040850152614fdc610180850183614f17565b91506040850151606085015260608501516080850152608085015160a085015260a085015160c085015260c085015160e085015260e085015161010081818701528087015191505061012061503b818701836001600160a01b03169052565b86015190506101406150508682018315159052565b860151858403601f190183870152905061506a8382614f80565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff811182821017156150c6576150c6615074565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156150f5576150f5615074565b604052919050565b600067ffffffffffffffff82111561511757615117615074565b50601f01601f191660200190565b600082601f83011261513657600080fd5b8135615149615144826150fd565b6150cc565b81815284602083860101111561515e57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561518d57600080fd5b813567ffffffffffffffff8111156151a457600080fd5b6151b084828501615125565b949350505050565b602081526000614d716020830184614f80565b80356151d681614e89565b919050565b6000806000606084860312156151f057600080fd5b83356151fb81614e89565b925060208401359150604084013561521281614e89565b809150509250925092565b600067ffffffffffffffff82111561523757615237615074565b5060051b60200190565b600082601f83011261525257600080fd5b813560206152626151448361521d565b82815260059290921b8401810191818101908684111561528157600080fd5b8286015b8481101561535257803567ffffffffffffffff808211156152a65760008081fd5b818901915060a080601f19848d030112156152c15760008081fd5b6152c96150a3565b87840135838111156152db5760008081fd5b6152e98d8a83880101615125565b825250604080850135848111156153005760008081fd5b61530e8e8b83890101615125565b8a84015250606093508385013561532481614e89565b9082015260808481013561533781614e89565b93820193909352920135908201528352918301918301615285565b509695505050505050565b600082601f83011261536e57600080fd5b8135602061537e6151448361521d565b828152600592831b850182019282820191908785111561539d57600080fd5b8387015b8581101561543157803567ffffffffffffffff8111156153c15760008081fd5b8801603f81018a136153d35760008081fd5b8581013560406153e56151448361521d565b82815291851b8301810191888101908d8411156154025760008081fd5b938201935b8385101561542057843582529389019390890190615407565b8852505050938501935084016153a1565b5090979650505050505050565b600082601f83011261544f57600080fd5b8135602061545f6151448361521d565b82815260059290921b8401810191818101908684111561547e57600080fd5b8286015b8481101561535257803567ffffffffffffffff808211156154a35760008081fd5b818901915060a080601f19848d030112156154be5760008081fd5b6154c66150a3565b87840135600281106154d85760008081fd5b8152604084810135848111156154ee5760008081fd5b6154fc8e8b83890101615125565b8a84015250606061550e8187016151cb565b8284015260809150818601358184015250828501359250838311156155335760008081fd5b6155418d8a85880101615125565b908201528652505050918301918301615482565b600082601f83011261556657600080fd5b813560206155766151448361521d565b82815260059290921b8401810191818101908684111561559557600080fd5b8286015b848110156153525780358352918301918301615599565b600080600080600060a086880312156155c857600080fd5b853567ffffffffffffffff808211156155e057600080fd5b6155ec89838a01615241565b9650602088013591508082111561560257600080fd5b61560e89838a0161535d565b9550604088013591508082111561562457600080fd5b61563089838a0161543e565b9450606088013591508082111561564657600080fd5b61565289838a01615555565b9350608088013591508082111561566857600080fd5b506156758882890161535d565b9150509295509295909350565b6000806040838503121561569557600080fd5b823567ffffffffffffffff808211156156ad57600080fd5b6156b986838701615241565b935060208501359150808211156156cf57600080fd5b506156dc8582860161535d565b9150509250929050565b6000806000606084860312156156fb57600080fd5b833567ffffffffffffffff8082111561571357600080fd5b61571f8783880161543e565b9450602086013591508082111561573557600080fd5b61574187838801615555565b9350604086013591508082111561575757600080fd5b506157648682870161535d565b9150509250925092565b801515811461353457600080fd5b600080600080600080600060e0888a03121561579757600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff8111156157d157600080fd5b6157dd8a828b01615125565b92505060c08801356157ee8161576e565b8091505092959891949750929550565b6000806040838503121561581157600080fd5b823561581c81614e89565b9150602083013561582c8161576e565b809150509250929050565b600181811c9082168061584b57607f821691505b602082108103610d7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008060006060848603121561589957600080fd5b83516158a481614e89565b6020850151604086015191945092506152128161576e565b6000602082840312156158ce57600080fd5b8151614d718161576e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561591b5761591b6158d9565b500190565b60006020828403121561593257600080fd5b8151614d7181614e89565b6000825161594f818460208701614f54565b9190910192915050565b60008282101561596b5761596b6158d9565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60a0815260006159b260a0830188614f80565b82810360208401526159c48188614f80565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b600060001982036159fc576159fc6158d9565b5060010190565b60408152601760408201527f546f67676c65644d616e6167656450726f706f73616c730000000000000000006060820152608060208201526000614d716080830184614f80565b60a081526000615a5d60a0830188614f80565b6001600160a01b038716602084015260028610615a7c57615a7c614ed4565b8560408401528460608401528281036080840152615a9a8185614f80565b98975050505050505050565b86815285602082015284604082015283606082015282608082015260c060a08201526000615a9a60c0830184614f80565b601f82111561292657600081815260208120601f850160051c81016020861015615afe5750805b601f850160051c820191505b8181101561130457828155600101615b0a565b815167ffffffffffffffff811115615b3757615b37615074565b615b4b81615b458454615837565b84615ad7565b602080601f831160018114615b805760008415615b685750858301515b600019600386901b1c1916600185901b178555611304565b600085815260208120601f198616915b82811015615baf57888601518255948401946001909101908401615b90565b5085821015615bcd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006101008a83528960208401528860408401528760608401528660808401528060a0840152615c0f81840187614f80565b94151560c084015250506001600160a01b039190911660e0909101529695505050505050565b60408152601c60408201527f4368756753706c6173684465706c6f796d656e7450726f706f736564000000006060820152608060208201526000614d716080830184614f80565b60408152600b60408201527f50726f706f7365725365740000000000000000000000000000000000000000006060820152608060208201526000614d716080830184614f80565b604081526000615cd66040830185614f80565b8281036020840152615ce88185614f80565b95945050505050565b60408152600d60408201527f50726f78795570677261646564000000000000000000000000000000000000006060820152608060208201526000614d716080830184614f80565b600060208284031215615d4a57600080fd5b5051919050565b6000816000190483118215151615615d6b57615d6b6158d9565b500290565b600082615da6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082601f830112615dbc57600080fd5b8151615dca615144826150fd565b818152846020838601011115615ddf57600080fd5b6151b0826020830160208701614f54565b60008060408385031215615e0357600080fd5b82519150602083015167ffffffffffffffff811115615e2157600080fd5b6156dc85828601615dab565b604081526000615e406040830185614f80565b90508260208301529392505050565b838152606060208201526000615e686060830185614f80565b9050826040830152949350505050565b7f4661696c656420746f206465706c6f793a200000000000000000000000000000815260008251615eb0816012850160208701614f54565b9190910160120192915050565b606081526000615ed06060830186614f80565b60208301949094525060400152919050565b60408152601060408201527f4465706c6f796d656e744661696c6564000000000000000000000000000000006060820152608060208201526000614d716080830184614f80565b600080600060608486031215615f3e57600080fd5b83519250602084015160ff81168114615f5657600080fd5b604085015190925067ffffffffffffffff811115615f7357600080fd5b61576486828701615dab565b6001600160a01b038516815283602082015260ff8316604082015260806060820152600061506a6080830184614f80565b60008085851115615fc057600080fd5b83861115615fcd57600080fd5b505082019391909203915056fea164736f6c634300080f000a","opcodes":"PUSH2 0x200 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x636B CODESIZE SUB DUP1 PUSH3 0x636B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0xC9 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD PUSH1 0x80 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xC0 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0xE0 MSTORE SWAP8 DUP9 AND PUSH2 0x100 MSTORE SWAP6 DUP8 AND PUSH2 0x120 MSTORE SWAP4 DUP7 AND PUSH2 0x140 MSTORE SWAP2 SWAP1 SWAP5 AND PUSH2 0x160 MSTORE PUSH2 0x1A0 SWAP4 SWAP1 SWAP4 MSTORE PUSH2 0x180 SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x1C0 SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x1E0 MSTORE PUSH3 0x1DA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0xC4 DUP2 PUSH3 0x9E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP11 DUP13 SUB PUSH2 0x180 DUP2 SLT ISZERO PUSH3 0xEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP12 MLOAD PUSH3 0xF8 DUP2 PUSH3 0x9E JUMP JUMPDEST PUSH1 0x20 DUP14 ADD MLOAD SWAP1 SWAP12 POP PUSH3 0x10B DUP2 PUSH3 0x9E JUMP JUMPDEST PUSH1 0x40 DUP14 ADD MLOAD SWAP1 SWAP11 POP PUSH3 0x11E DUP2 PUSH3 0x9E JUMP JUMPDEST PUSH1 0x60 DUP14 ADD MLOAD SWAP1 SWAP10 POP PUSH3 0x131 DUP2 PUSH3 0x9E JUMP JUMPDEST DUP1 SWAP9 POP POP PUSH1 0x80 DUP13 ADD MLOAD SWAP7 POP PUSH1 0xA0 DUP13 ADD MLOAD SWAP6 POP PUSH1 0xC0 DUP13 ADD MLOAD SWAP5 POP PUSH1 0xE0 DUP13 ADD MLOAD SWAP4 POP PUSH1 0x60 PUSH1 0xFF NOT DUP3 ADD SLT ISZERO PUSH3 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x196 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE PUSH2 0x100 DUP14 ADD MLOAD DUP3 MSTORE PUSH2 0x120 DUP14 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x140 DUP14 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 POP PUSH3 0x1C9 PUSH2 0x160 DUP13 ADD PUSH3 0xB7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x160 MLOAD PUSH2 0x180 MLOAD PUSH2 0x1A0 MLOAD PUSH2 0x1C0 MLOAD PUSH2 0x1E0 MLOAD PUSH2 0x5FE7 PUSH3 0x384 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x634 ADD MSTORE PUSH2 0x3F4C ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x88C ADD MSTORE PUSH2 0x3F01 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x97E ADD MSTORE DUP2 DUP2 PUSH2 0xF29 ADD MSTORE PUSH2 0x112C ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x44F ADD MSTORE DUP2 DUP2 PUSH2 0x1164 ADD MSTORE DUP2 DUP2 PUSH2 0x11C7 ADD MSTORE DUP2 DUP2 PUSH2 0x296B ADD MSTORE DUP2 DUP2 PUSH2 0x4546 ADD MSTORE PUSH2 0x45A9 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x8E0 ADD MSTORE DUP2 DUP2 PUSH2 0xD86 ADD MSTORE DUP2 DUP2 PUSH2 0x1432 ADD MSTORE DUP2 DUP2 PUSH2 0x1841 ADD MSTORE PUSH2 0x1BE3 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x3BE ADD MSTORE DUP2 DUP2 PUSH2 0x372D ADD MSTORE PUSH2 0x3E37 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x7AF ADD MSTORE DUP2 DUP2 PUSH2 0x4089 ADD MSTORE PUSH2 0x42D8 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x345 ADD MSTORE DUP2 DUP2 PUSH2 0x6A8 ADD MSTORE DUP2 DUP2 PUSH2 0x105A ADD MSTORE DUP2 DUP2 PUSH2 0x12A3 ADD MSTORE DUP2 DUP2 PUSH2 0x1596 ADD MSTORE DUP2 DUP2 PUSH2 0x17D4 ADD MSTORE DUP2 DUP2 PUSH2 0x1CCF ADD MSTORE DUP2 DUP2 PUSH2 0x1FF7 ADD MSTORE DUP2 DUP2 PUSH2 0x2254 ADD MSTORE DUP2 DUP2 PUSH2 0x23A6 ADD MSTORE DUP2 DUP2 PUSH2 0x2ADC ADD MSTORE DUP2 DUP2 PUSH2 0x2D5A ADD MSTORE DUP2 DUP2 PUSH2 0x2EAB ADD MSTORE DUP2 DUP2 PUSH2 0x317C ADD MSTORE DUP2 DUP2 PUSH2 0x33A4 ADD MSTORE DUP2 DUP2 PUSH2 0x36CC ADD MSTORE DUP2 DUP2 PUSH2 0x426A ADD MSTORE DUP2 DUP2 PUSH2 0x44DB ADD MSTORE DUP2 DUP2 PUSH2 0x463D ADD MSTORE DUP2 DUP2 PUSH2 0x4789 ADD MSTORE DUP2 DUP2 PUSH2 0x4879 ADD MSTORE PUSH2 0x4B16 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x557 ADD MSTORE DUP2 DUP2 PUSH2 0x3825 ADD MSTORE PUSH2 0x4D7D ADD MSTORE PUSH1 0x0 PUSH2 0x1389 ADD MSTORE PUSH1 0x0 PUSH2 0x1363 ADD MSTORE PUSH1 0x0 PUSH2 0x133D ADD MSTORE PUSH2 0x5FE7 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2BF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A20BA78 GT PUSH2 0x16E JUMPI DUP1 PUSH4 0xEF9FE8E4 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xFC7B9C18 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xFC7B9C18 EQ PUSH2 0x937 JUMPI DUP1 PUSH4 0xFD95A3BE EQ PUSH2 0x94C JUMPI DUP1 PUSH4 0xFFF81D4C EQ PUSH2 0x96C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x902 JUMPI DUP1 PUSH4 0xF40C7C4C EQ PUSH2 0x922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF220ACA9 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xF220ACA9 EQ PUSH2 0x87A JUMPI DUP1 PUSH4 0xF23D6142 EQ PUSH2 0x8AE JUMPI DUP1 PUSH4 0xF2A7208D EQ PUSH2 0x8CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xEF9FE8E4 EQ PUSH2 0x84A JUMPI DUP1 PUSH4 0xF0317111 EQ PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBD8BCD89 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xDFBA66F0 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xDFBA66F0 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0xE8EA2D08 EQ PUSH2 0x813 JUMPI DUP1 PUSH4 0xE9ED9B64 EQ PUSH2 0x82A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBD8BCD89 EQ PUSH2 0x7D1 JUMPI DUP1 PUSH4 0xC6EB84E5 EQ PUSH2 0x7E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA53A1ADF GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xA53A1ADF EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xA7882F93 EQ PUSH2 0x77D JUMPI DUP1 PUSH4 0xBAE4B95F EQ PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9A20BA78 EQ PUSH2 0x728 JUMPI DUP1 PUSH4 0xA47D0801 EQ PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0x21C JUMPI DUP1 PUSH4 0x79E6F49A GT PUSH2 0x1D0 JUMPI DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0x91E219AE EQ PUSH2 0x6E8 JUMPI DUP1 PUSH4 0x9449A44F EQ PUSH2 0x708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79E6F49A EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x74EC29A0 GT PUSH2 0x201 JUMPI DUP1 PUSH4 0x74EC29A0 EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0x7521120F EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x75CD65E1 EQ PUSH2 0x656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x5C0 JUMPI DUP1 PUSH4 0x73B4A738 EQ PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4731D48C GT PUSH2 0x273 JUMPI DUP1 PUSH4 0x54FD4D50 GT PUSH2 0x258 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x572B6C05 EQ PUSH2 0x53A JUMPI DUP1 PUSH4 0x61F5499F EQ PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4731D48C EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x5229C975 EQ PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E0A6960 GT PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x2E0A6960 EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x37404017 EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x523A04C EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x18177497 EQ PUSH2 0x3FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x3A7 JUMPI CALLVALUE PUSH2 0x2CD PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6C703791F399558807424F489CCD811C72B4FF0B74AF547264FAD7C646776DF0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4554484465706F73697465640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x42D PUSH2 0x418 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH1 0xCA 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 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x49F PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F4 SWAP2 SWAP1 PUSH2 0x4FAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4CC PUSH2 0x4C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x517B JUMP JUMPDEST PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F4 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0xD84 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x10C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x518 PUSH2 0x130C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x546 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x42D PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x13B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH2 0x5F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x42D PUSH2 0x61D CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH2 0x13C4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x662 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x671 CALLDATASIZE PUSH1 0x4 PUSH2 0x51DB JUMP JUMPDEST PUSH2 0x14DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x691 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH2 0x183F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x703 CALLDATASIZE PUSH1 0x4 PUSH2 0x55B0 JUMP JUMPDEST PUSH2 0x1D38 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x714 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x723 CALLDATASIZE PUSH1 0x4 PUSH2 0x5682 JUMP JUMPDEST PUSH2 0x1D5E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x734 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x22E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x749 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x758 CALLDATASIZE PUSH1 0x4 PUSH2 0x56E6 JUMP JUMPDEST PUSH2 0x240D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x778 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH2 0x292B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x798 CALLDATASIZE PUSH1 0x4 PUSH2 0x577C JUMP JUMPDEST PUSH2 0x2B13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCF SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCE SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCD SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xCD SLOAD ISZERO ISZERO PUSH2 0x42D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x845 CALLDATASIZE PUSH1 0x4 PUSH2 0x57FE JUMP JUMPDEST PUSH2 0x2E33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xD0 SLOAD PUSH2 0x42D SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x8C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x5682 JUMP JUMPDEST PUSH2 0x2F1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x91D CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH2 0x34A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x92E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x3537 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x943 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH2 0x3703 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x958 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x967 CALLDATASIZE PUSH1 0x4 PUSH2 0x577C JUMP JUMPDEST PUSH2 0x3715 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x978 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AA PUSH2 0x3821 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x160 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP2 SWAP1 MSTORE DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xA0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xC0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x100 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x160 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xA39 JUMPI PUSH2 0xA39 PUSH2 0x4ED4 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xA4A JUMPI PUSH2 0xA4A PUSH2 0x4ED4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD 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 0xABD JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xA8C JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH2 0x120 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xB3D SWAP1 PUSH2 0x5837 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 0xB69 SWAP1 PUSH2 0x5837 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBB6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB8B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBB6 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 0xB99 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 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xBE9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xC03 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC03 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xC7A 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 0xCBA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xCD3 SWAP2 SWAP1 PUSH2 0x5884 JUMP JUMPDEST PUSH1 0xCC DUP3 SWAP1 SSTORE PUSH1 0xD0 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO OR SWAP1 SSTORE SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH2 0xCF5 PUSH2 0x3883 JUMP JUMPDEST PUSH2 0xCFD PUSH2 0x3908 JUMP JUMPDEST PUSH2 0xD06 DUP4 PUSH2 0x398D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP5 POP POP POP POP DUP1 ISZERO PUSH2 0xD7E JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x91D14854 PUSH32 0x9E982EFBC2164E40FCD14DA9A0408A971E4224CB50A113D83B1C90CD8C1434DD PUSH2 0xDDC PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE3E 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 0xE62 SWAP2 SWAP1 PUSH2 0x58BC JUMP JUMPDEST PUSH2 0xE98 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6696FA8100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD PUSH2 0xED1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F0825A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF27 JUMPI PUSH1 0x40 MLOAD PUSH32 0xBB3291200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 PUSH1 0x7 ADD SLOAD PUSH2 0xF57 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST TIMESTAMP GT PUSH2 0xF8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x7EA3C87D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0xF9D PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xFDF PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0xDEF501073BF641EBC9528324E0366C9737F17823FA009980717EC55DF3B05F20 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E74436C61696D65640000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10C9 PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0xCD SLOAD PUSH2 0x1102 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F0825A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x115D JUMPI POP TIMESTAMP PUSH32 0x0 DUP3 PUSH1 0x7 ADD SLOAD PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO PUSH2 0x11FD JUMPI PUSH32 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x118F PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x11BE SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x11F7 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0xCD DUP1 SLOAD PUSH1 0x0 SWAP1 SWAP2 SSTORE DUP2 SLOAD PUSH1 0xFF NOT AND PUSH1 0x5 OR DUP3 SSTORE PUSH2 0x1219 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH32 0x6E376540ABC69EA2ABA618BAF9970A40A410209797848AC685C0D5E321536C96 DUP5 PUSH1 0x6 ADD SLOAD PUSH1 0x40 MLOAD PUSH2 0x1258 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E7443616E63656C6C6564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1304 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1330 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x13B8 PUSH2 0x39F7 JUMP JUMPDEST PUSH2 0x13C2 PUSH1 0x0 PUSH2 0x398D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xD0 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x149D JUMPI POP PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x1036D397ACC4220751130E8FCC4CE6CB991A324073D229F09E751AC8624F19C0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1479 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 0x149D SWAP2 SWAP1 PUSH2 0x58BC JUMP JUMPDEST DUP1 PUSH2 0x14C0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x14D8 JUMPI POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x14E6 PUSH2 0x39F7 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x152A JUMPI PUSH1 0x40 MLOAD PUSH32 0x58796EA800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD ISZERO PUSH2 0x1564 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318CF47900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 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 0x72C6838F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15E5 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 0x1609 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x164B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6602115A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP5 SWAP2 SWAP1 DUP7 AND SWAP1 PUSH32 0x6828050FF1390D9C84304DB69D7669BDC13A1DF9715CEDF6FE1EEB0BEC3843EA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x7EFF275E00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x1716 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1751 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 0x1756 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1791 JUMPI PUSH1 0x40 MLOAD PUSH32 0xED9AF69100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78794578706F7274656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1834 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x91D14854 PUSH32 0x9E982EFBC2164E40FCD14DA9A0408A971E4224CB50A113D83B1C90CD8C1434DD PUSH2 0x1897 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F9 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 0x191D SWAP2 SWAP1 PUSH2 0x58BC JUMP JUMPDEST PUSH2 0x1953 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6696FA8100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x198D JUMPI PUSH1 0x40 MLOAD PUSH32 0x5E85AE7300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x199A PUSH2 0x9A0 JUMP JUMPDEST 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 LT ISZERO PUSH2 0x19F3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC70453EA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SELFBALANCE PUSH1 0xCF SLOAD DUP3 PUSH2 0x1A02 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST GT ISZERO PUSH2 0x1A3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x356680B700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x1A47 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1A76 SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1A8F SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1A9D SWAP1 POP PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xBA98915499C19898A23F510DEEAA915637D1B5D537DF51DC105D01B8E69BE7E2 DUP3 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x1AD4 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x40 MLOAD PUSH2 0x1B0C SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH2 0x1B1E PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 DUP5 SWAP2 PUSH2 0x1B47 SWAP2 SWAP1 PUSH2 0x593D 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 0x1B84 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 0x1B89 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1BC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x27FCD9D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCF SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP1 SWAP2 PUSH2 0x1C0F SWAP2 PUSH2 0x593D 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 0x1C4C 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 0x1C51 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1C8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x27FCD9D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578656375746F725061796D656E74436C61696D656400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D42 DUP6 DUP6 PUSH2 0x1D5E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1D54 JUMPI PUSH2 0x1D54 DUP4 DUP4 DUP4 PUSH2 0x240D JUMP JUMPDEST PUSH2 0x10BA DUP6 DUP6 PUSH2 0x2F1B JUMP JUMPDEST PUSH2 0x1D66 PUSH2 0x3A70 JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1D96 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3AC9 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP2 PUSH1 0x6 ADD SLOAD EQ PUSH2 0x1DD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x415522D000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1DEF JUMPI PUSH2 0x1DEF PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x1E26 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCB6F6AE400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x2 DUP3 ADD SLOAD DUP2 EQ PUSH2 0x1E65 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4F838F7C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21C5 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1EAF JUMPI PUSH2 0x1EAF PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP3 POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1ECB JUMPI PUSH2 0x1ECB PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH32 0x1579D012EAD512DCB248C91571FA46AAA0F3399F8D3E1098FAC22575DB2ED693 DUP4 PUSH1 0x80 ADD MLOAD SUB PUSH2 0x1F32 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC0E6F38000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F89 DUP6 PUSH1 0x4 ADD SLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F67 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x599F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 DUP6 DUP10 PUSH1 0x2 ADD SLOAD PUSH2 0x3BBD JUMP JUMPDEST PUSH2 0x1FBF JUMPI PUSH1 0x40 MLOAD PUSH32 0xB05E92FA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x72C6838F SWAP2 PUSH2 0x202E SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x204B 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 0x206F SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6602115A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x479AA92700000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x2135 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2170 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 0x2175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x21B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FB523CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP DUP1 DUP1 PUSH2 0x21BD SWAP1 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E95 JUMP JUMPDEST POP DUP4 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP5 SSTORE PUSH2 0x21D9 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0xBFEA78BD2C6EB373D1BF039C60BC8B42BE83B67FB39C2A2BC60B18D5883897D9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78696573496E6974696174656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x8 DUP5 ADD SLOAD PUSH2 0x22D2 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E2A JUMP JUMPDEST POP POP POP POP POP PUSH2 0x22E1 PUSH1 0x1 PUSH1 0x65 SSTORE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x22ED PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0xD0 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE PUSH2 0x2307 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0xD0 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH32 0xADEA028B90FC36108CAD0D47879E8F5E0EFA35BC21AD2FCF625E4CE56AFF3B4B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0xD0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0xF8 SHL PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0x1 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x21 DUP4 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH32 0xF52CC7FD00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0xF52CC7FD SWAP2 PUSH2 0x23D9 SWAP2 PUSH1 0x25 ADD PUSH2 0x5A03 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2407 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2415 PUSH2 0x3A70 JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x2445 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3AC9 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x0 DUP2 SWAP1 SUB PUSH2 0x2482 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3250EDA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP2 SWAP1 MSTORE DUP3 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x28FB JUMPI DUP10 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x24CD JUMPI PUSH2 0x24CD PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP4 POP DUP9 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x24E9 JUMPI PUSH2 0x24E9 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP3 POP DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x2505 JUMPI PUSH2 0x2505 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP DUP6 PUSH1 0x1 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2524 JUMPI PUSH2 0x2524 PUSH2 0x5970 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x257B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D41CD6C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x25D5 DUP7 PUSH1 0x3 ADD SLOAD DUP6 PUSH1 0x80 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x0 ADD MLOAD DUP9 PUSH1 0x60 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25B0 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5A4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 DUP6 DUP11 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 POP PUSH2 0x3BBD JUMP JUMPDEST PUSH2 0x260B JUMPI PUSH1 0x40 MLOAD PUSH32 0xB05E92FA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP7 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x261D DUP4 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP7 PUSH1 0x1 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2639 JUMPI PUSH2 0x2639 PUSH2 0x5970 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x2674 JUMPI PUSH2 0x2674 PUSH2 0x4ED4 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2687 JUMPI PUSH2 0x2687 PUSH2 0x4ED4 JUMP JUMPDEST SUB PUSH2 0x26E5 JUMPI PUSH2 0x2697 DUP7 DUP6 DUP6 PUSH2 0x400D JUMP JUMPDEST PUSH1 0x1 DUP7 ADD SLOAD PUSH1 0x6 DUP8 ADD SLOAD EQ DUP1 ISZERO PUSH2 0x26B0 JUMPI POP PUSH1 0x2 DUP7 ADD SLOAD ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x26D2 JUMPI POP PUSH1 0x6 DUP7 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x26CF JUMPI PUSH2 0x26CF PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST ISZERO PUSH2 0x26E0 JUMPI PUSH2 0x26E0 DUP7 PUSH2 0x46FB JUMP JUMPDEST PUSH2 0x28E9 JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x26FA JUMPI PUSH2 0x26FA PUSH2 0x4ED4 JUMP JUMPDEST SUB PUSH2 0x28B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH2 0x160 DUP2 ADD SWAP1 SWAP2 MSTORE DUP7 SLOAD PUSH2 0x26E0 SWAP2 SWAP1 DUP9 SWAP1 DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x272A JUMPI PUSH2 0x272A PUSH2 0x4ED4 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x273B JUMPI PUSH2 0x273B PUSH2 0x4ED4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD 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 0x27AE JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x277D JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH2 0x120 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x282E SWAP1 PUSH2 0x5837 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 0x285A SWAP1 PUSH2 0x5837 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x28A7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x287C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x28A7 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 0x288A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP6 DUP6 PUSH2 0x47F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x88DD20D400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x28F3 DUP2 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x24B3 JUMP JUMPDEST POP PUSH1 0x8 DUP6 ADD SLOAD PUSH2 0x2916 SWAP1 DUP8 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E2A JUMP JUMPDEST POP POP POP POP POP POP PUSH2 0x2926 PUSH1 0x1 PUSH1 0x65 SSTORE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2933 PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x2962 JUMPI POP PUSH2 0x295F PUSH2 0x3703 JUMP JUMPDEST SELFBALANCE GT JUMPDEST DUP1 ISZERO PUSH2 0x299E JUMPI POP PUSH32 0x0 PUSH2 0x2992 PUSH2 0x3703 JUMP JUMPDEST PUSH2 0x299C SWAP1 SELFBALANCE PUSH2 0x5959 JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x29D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x69C00FAD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x29ED JUMPI PUSH2 0x29ED PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x2A24 JUMPI PUSH1 0x40 MLOAD PUSH32 0x50FEACF800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD ISZERO PUSH2 0x2A5E JUMPI PUSH1 0x40 MLOAD PUSH32 0x318CF47900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD DUP3 SWAP1 SSTORE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0x78F2B31E40DCA1F52E437B553603E30B4916085657201B5792894208D3E918C1 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E74417070726F76656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH2 0x12D6 JUMP JUMPDEST PUSH2 0x2B1E PUSH2 0x61D PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x2B54 JUMPI PUSH1 0x40 MLOAD PUSH32 0x70F3B56F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2B71 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5AA6 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 PUSH1 0xCB SWAP1 SWAP4 MSTORE SWAP1 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2BB4 JUMPI PUSH2 0x2BB4 PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI POP PUSH1 0x4 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2BD1 JUMPI PUSH2 0x2BD1 PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2BF2 JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2BEF JUMPI PUSH2 0x2BEF PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2C10 JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2C0D JUMPI PUSH2 0x2C0D PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST ISZERO PUSH2 0x2C47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB1C30CFF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP3 SSTORE PUSH1 0x3 DUP3 ADD DUP11 SWAP1 SSTORE PUSH1 0x4 DUP3 ADD DUP10 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD DUP7 SWAP1 SSTORE DUP8 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C80 JUMPI PUSH2 0x2C80 PUSH2 0x5074 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2CA9 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x2CC0 SWAP2 PUSH1 0x1 DUP6 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x4DCF JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP8 SWAP1 SSTORE PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL DUP7 ISZERO ISZERO MUL OR SWAP1 SSTORE PUSH1 0x9 DUP3 ADD PUSH2 0x2D0A DUP7 DUP3 PUSH2 0x5B1D JUMP JUMPDEST POP DUP3 PUSH32 0x2EFCC05790A2408B85FD4AC0D2EB6FF0B3A28C02913B5772B38206EEAF7E1AAA DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2D3C PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D50 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5BDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD PUSH2 0x2D8F PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2DCA SWAP2 SWAP1 PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND DUP2 MSTORE PUSH1 0x14 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DF5 SWAP2 SWAP1 PUSH2 0x5C35 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2E3B PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO OR SWAP1 SSTORE PUSH2 0x2E67 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 ISZERO ISZERO DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB9A24AC05B182ED15B84D4B2C08EF4A709487D65220BEEBCB8190410FFF5A84 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2EF0 SWAP2 ISZERO ISZERO PUSH1 0xF8 SHL DUP2 MSTORE PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D6 SWAP2 SWAP1 PUSH2 0x5C7C JUMP JUMPDEST PUSH2 0x2F23 PUSH2 0x3A70 JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x2F53 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3AC9 JUMP JUMPDEST PUSH1 0xCD SLOAD PUSH2 0x2F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F0825A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x6 DUP3 ADD SLOAD EQ PUSH2 0x2FCD JUMPI PUSH1 0x40 MLOAD PUSH32 0xFBD9E67500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x2 DUP3 ADD SLOAD DUP2 EQ PUSH2 0x300C JUMPI PUSH1 0x40 MLOAD PUSH32 0x4F838F7C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3483 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3056 JUMPI PUSH2 0x3056 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP3 POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3072 JUMPI PUSH2 0x3072 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH32 0x1579D012EAD512DCB248C91571FA46AAA0F3399F8D3E1098FAC22575DB2ED693 DUP4 PUSH1 0x80 ADD MLOAD SUB PUSH2 0x30D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC0E6F38000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x310E DUP6 PUSH1 0x4 ADD SLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F67 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x599F JUMP JUMPDEST PUSH2 0x3144 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB05E92FA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x72C6838F SWAP2 PUSH2 0x31B3 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31D0 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 0x31F4 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3236 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6602115A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3272 SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x192957C800000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x32D5 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3310 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 0x3315 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3350 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD764F04E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0x7E1BC64DC0005C076DE7C8597CA19CDE8E68D0D0A28A32D75BC7934CFFDAFE88 DUP8 PUSH1 0x0 ADD MLOAD DUP9 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x339A SWAP3 SWAP2 SWAP1 PUSH2 0x5CC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3411 SWAP2 SWAP1 PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND DUP2 MSTORE PUSH1 0x14 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x343C SWAP2 SWAP1 PUSH2 0x5CF1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3456 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x346A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x347B SWAP1 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x303C JUMP JUMPDEST POP PUSH2 0x348D DUP5 PUSH2 0x46FB JUMP JUMPDEST PUSH1 0x8 DUP5 ADD SLOAD PUSH2 0x22D2 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E2A JUMP JUMPDEST PUSH2 0x34AF PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x352B 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 0xC71 JUMP JUMPDEST PUSH2 0x3534 DUP2 PUSH2 0x398D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x353F PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0xCD SLOAD ISZERO PUSH2 0x3579 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318CF47900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3583 PUSH2 0x3703 JUMP JUMPDEST PUSH2 0x358D SWAP1 SELFBALANCE PUSH2 0x5959 JUMP JUMPDEST SWAP1 POP PUSH2 0x3597 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x889D16C2F05ED249633DADC4C5C2AA8EEB677384800475AAF313CAD7707E9E19 DUP3 PUSH1 0x40 MLOAD PUSH2 0x35D1 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH2 0x35E3 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 DUP5 SWAP2 PUSH2 0x360C SWAP2 SWAP1 PUSH2 0x593D 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 0x3649 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 0x364E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3689 JUMPI PUSH1 0x40 MLOAD PUSH32 0x27FCD9D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E6572576974686472657745544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH2 0x12D6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCF SLOAD PUSH1 0xCE SLOAD PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST PUSH1 0x0 GAS SWAP1 POP PUSH2 0x3729 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2B13 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x455259CB 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 0x3789 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 0x37AD SWAP2 SWAP1 PUSH2 0x5D38 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x37B9 PUSH2 0x4B76 JUMP JUMPDEST PUSH2 0x37C5 SWAP2 POP PUSH1 0x10 PUSH2 0x5D51 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 GAS DUP5 PUSH2 0x37D8 DUP5 PUSH3 0x186A0 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x37E2 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x37EC SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x37FA DUP3 DUP6 PUSH2 0x5D51 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xCF PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x380E SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x387E JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC CALLDATASIZE ADD CALLDATALOAD PUSH1 0x60 SHR SWAP1 JUMP JUMPDEST POP CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3900 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 0xC71 JUMP JUMPDEST PUSH2 0x13C2 PUSH2 0x4B89 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3985 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 0xC71 JUMP JUMPDEST PUSH2 0x13C2 PUSH2 0x4C06 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 PUSH2 0x39FF PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3A1A PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13C2 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 0xC71 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x65 SLOAD SUB PUSH2 0x3AC2 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 0xC71 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x65 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 ISZERO ISZERO EQ DUP1 ISZERO PUSH2 0x3B17 JUMPI POP PUSH2 0x3ADE PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3B0B PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3B4E JUMPI PUSH1 0x40 MLOAD PUSH32 0x6EE429500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 ISZERO DUP1 ISZERO PUSH2 0x3B86 JUMPI POP PUSH2 0x3B5F PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3B7A PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3534 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6DB2465F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x3C34 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 0x4C69625F4D65726B6C65547265653A20546F74616C206C6561766573206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x742062652067726561746572207468616E207A65726F2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC71 JUMP JUMPDEST DUP2 DUP5 LT PUSH2 0x3CA8 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 0x4C69625F4D65726B6C65547265653A20496E646578206F7574206F6620626F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E64732E00000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC71 JUMP JUMPDEST PUSH2 0x3CB1 DUP3 PUSH2 0x4C93 JUMP JUMPDEST DUP4 MLOAD EQ PUSH2 0x3D4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C69625F4D65726B6C65547265653A20546F74616C207369626C696E67732064 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F6573206E6F7420636F72726563746C7920636F72726573706F6E6420746F20 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x746F74616C206C65617665732E00000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xC71 JUMP JUMPDEST DUP5 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x3E1D JUMPI DUP6 PUSH1 0x1 AND PUSH1 0x1 SUB PUSH2 0x3DB6 JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3D76 JUMPI PUSH2 0x3D76 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D99 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP PUSH2 0x3E04 JUMP JUMPDEST DUP2 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3DC9 JUMPI PUSH2 0x3DC9 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3DEB SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP JUMPDEST PUSH1 0x1 SWAP6 SWAP1 SWAP6 SHR SWAP5 DUP1 PUSH2 0x3E15 DUP2 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x3D50 JUMP JUMPDEST POP SWAP1 SWAP6 EQ SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x3E33 JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x455259CB 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 0x3E93 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 0x3EB7 SWAP2 SWAP1 PUSH2 0x5D38 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3EC3 PUSH2 0x4B76 JUMP JUMPDEST PUSH2 0x3ECF SWAP2 POP PUSH1 0x10 PUSH2 0x5D51 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 GAS DUP6 PUSH2 0x3EE2 DUP5 PUSH3 0x186A0 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x3EEC SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x3EF6 SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH2 0x3F26 PUSH32 0x0 DUP3 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x3F30 DUP5 DUP8 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F3A SWAP2 SWAP1 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F44 SWAP2 SWAP1 PUSH2 0x5D70 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH32 0x0 PUSH2 0x3F75 DUP6 DUP9 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F7F SWAP2 SWAP1 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F89 SWAP2 SWAP1 PUSH2 0x5D70 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3F9D SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP DUP3 SWAP1 POP PUSH1 0xC9 PUSH1 0x0 PUSH2 0x3FB0 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3FDF SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xCF PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3FF8 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x65 SSTORE JUMP JUMPDEST PUSH1 0x2 DUP4 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x4025 JUMPI PUSH2 0x4025 PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x405C JUMPI PUSH1 0x40 MLOAD PUSH32 0xCB6F6AE400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x4077 SWAP2 SWAP1 PUSH2 0x5DF0 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP5 PUSH1 0x80 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x40C4 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x21F8A72100000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x4127 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x4162 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 0x4167 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x41A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDA45F5F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x41B9 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO PUSH2 0x42D3 JUMPI PUSH1 0xCD SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x41E6 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xDC12392BC0B29F679BA6E7C5F560DD5735A9909EE29C4B345EF19DF2C623B1B0 DUP8 DUP12 PUSH1 0x40 MLOAD PUSH2 0x421F SWAP3 SWAP2 SWAP1 PUSH2 0x5E2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6E74726163744465706C6F796D656E74536B697070656400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x42B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x42CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1834 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP9 PUSH1 0x0 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x4316 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5E4F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC7AEEF0F00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x4379 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x43B4 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 0x43B9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x43D0 SWAP2 SWAP1 PUSH2 0x5E78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH2 0x43FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC71 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x4414 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x4544 JUMPI PUSH1 0xCD SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x40 MLOAD PUSH2 0x444A SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xA5F92178A767E4250CB11280DA2B868AF52F7DBE6194258920D017E1D30CD779 DUP11 DUP16 PUSH1 0x60 ADD MLOAD DUP14 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x4490 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5EBD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6E74726163744465706C6F79656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x453B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x46ED JUMP JUMPDEST PUSH32 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x4571 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x45A0 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x45D9 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xCD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH2 0x45FA SWAP1 DUP11 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xB56435B217B7B283698159B613DF8B2B5D3C9EB8A9CF2ABD2762D0B9D08C098B DUP11 DUP15 PUSH1 0x40 MLOAD PUSH2 0x4633 SWAP3 SWAP2 SWAP1 PUSH2 0x5E2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD PUSH1 0xCD SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x467F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46AA SWAP2 SWAP1 PUSH2 0x5EE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x0 PUSH1 0xCD SSTORE POP POP DUP12 SLOAD PUSH1 0xFF NOT AND PUSH1 0x6 OR DUP13 SSTORE JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x4 OR DUP2 SSTORE PUSH2 0x470E PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0x745F3F165A11892E95C826E15A0E3F1EDEBD0C600775D4E34E41D08F0C73ECF2 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E74436F6D706C65746564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x0 PUSH1 0xCD SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP4 MLOAD PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x480A JUMPI PUSH2 0x480A PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x4841 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB38CBA4800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x72C6838F SWAP2 PUSH2 0x48B0 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x48CD 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 0x48F1 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH32 0x1579D012EAD512DCB248C91571FA46AAA0F3399F8D3E1098FAC22575DB2ED693 DUP4 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x4950 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC0E6F38000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x496D SWAP2 SWAP1 PUSH2 0x5F29 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x40 ADD MLOAD DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x499A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F7F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9BC6EE9A00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x49FD SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x4A38 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 0x4A3D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x4A78 JUMPI PUSH1 0x40 MLOAD PUSH32 0xAC5785A500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A80 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0x572CA77D05D5995D2382E9E3B5F4819A396A2B7914DD3CB9A81070B9DBE1E2F5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x4ACB SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53657450726F787953746F726167650000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4B62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 PUSH2 0x4B81 PUSH2 0x4D78 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4006 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 0xC71 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4C83 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 0xC71 JUMP JUMPDEST PUSH2 0x13C2 PUSH2 0x4C8E PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x398D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x4D0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C69625F4D65726B6C65547265653A2043616E6E6F7420636F6D707574652063 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65696C286C6F675F3229206F6620302E00000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC71 JUMP JUMPDEST DUP2 PUSH1 0x1 SUB PUSH2 0x4D1A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH1 0x80 JUMPDEST PUSH1 0x1 DUP2 LT PUSH2 0x4D58 JUMPI DUP1 PUSH2 0x4D36 PUSH1 0x1 DUP1 DUP4 SHL PUSH2 0x5959 JUMP JUMPDEST SWAP1 SHL DUP4 AND ISZERO PUSH2 0x4D50 JUMPI PUSH2 0x4D49 DUP2 DUP4 PUSH2 0x5908 JUMP JUMPDEST SWAP3 DUP2 SHR SWAP3 SWAP2 POP JUMPDEST PUSH1 0x1 SHR PUSH2 0x4D20 JUMP JUMPDEST POP PUSH1 0x1 DUP2 SHL DUP5 EQ PUSH2 0x4D71 JUMPI PUSH2 0x4D6E PUSH1 0x1 DUP3 PUSH2 0x5908 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x4DC7 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH2 0x4DBA PUSH1 0x14 DUP3 PUSH2 0x5959 JUMP JUMPDEST SWAP3 PUSH2 0x4B81 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5FB0 JUMP JUMPDEST PUSH1 0x0 CALLDATASIZE PUSH2 0x4B81 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x4E64 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x4E35 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x4DF8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E62 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x4E35 JUMP JUMPDEST POP JUMPDEST POP PUSH2 0x4E70 SWAP3 SWAP2 POP PUSH2 0x4E74 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4E70 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4E75 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4D71 DUP2 PUSH2 0x4E89 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4ECD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x4F13 JUMPI PUSH2 0x4F13 PUSH2 0x4ED4 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F49 JUMPI DUP2 MLOAD ISZERO ISZERO DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4F2B JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F6F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4F57 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2407 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x4F98 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4F54 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 PUSH2 0x4FBE PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH2 0x4F03 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x160 DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x4FDC PUSH2 0x180 DUP6 ADD DUP4 PUSH2 0x4F17 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 PUSH2 0x503B DUP2 DUP8 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST DUP7 ADD MLOAD SWAP1 POP PUSH2 0x140 PUSH2 0x5050 DUP7 DUP3 ADD DUP4 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST DUP7 ADD MLOAD DUP6 DUP5 SUB PUSH1 0x1F NOT ADD DUP4 DUP8 ADD MSTORE SWAP1 POP PUSH2 0x506A DUP4 DUP3 PUSH2 0x4F80 JUMP JUMPDEST SWAP7 SWAP6 POP POP 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 0xA0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x50C6 JUMPI PUSH2 0x50C6 PUSH2 0x5074 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 0x50F5 JUMPI PUSH2 0x50F5 PUSH2 0x5074 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5117 JUMPI PUSH2 0x5117 PUSH2 0x5074 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 0x5136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5149 PUSH2 0x5144 DUP3 PUSH2 0x50FD JUMP JUMPDEST PUSH2 0x50CC JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x515E 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 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x518D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x51B0 DUP5 DUP3 DUP6 ADD PUSH2 0x5125 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x51D6 DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x51F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x51FB DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5212 DUP2 PUSH2 0x4E89 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5237 JUMPI PUSH2 0x5237 PUSH2 0x5074 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5252 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x5262 PUSH2 0x5144 DUP4 PUSH2 0x521D 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 0x5281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x5352 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x52A6 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP PUSH1 0xA0 DUP1 PUSH1 0x1F NOT DUP5 DUP14 SUB ADD SLT ISZERO PUSH2 0x52C1 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x52C9 PUSH2 0x50A3 JUMP JUMPDEST DUP8 DUP5 ADD CALLDATALOAD DUP4 DUP2 GT ISZERO PUSH2 0x52DB JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x52E9 DUP14 DUP11 DUP4 DUP9 ADD ADD PUSH2 0x5125 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x40 DUP1 DUP6 ADD CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0x5300 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x530E DUP15 DUP12 DUP4 DUP10 ADD ADD PUSH2 0x5125 JUMP JUMPDEST DUP11 DUP5 ADD MSTORE POP PUSH1 0x60 SWAP4 POP DUP4 DUP6 ADD CALLDATALOAD PUSH2 0x5324 DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP5 DUP2 ADD CALLDATALOAD PUSH2 0x5337 DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x5285 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x536E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x537E PUSH2 0x5144 DUP4 PUSH2 0x521D JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 DUP4 SHL DUP6 ADD DUP3 ADD SWAP3 DUP3 DUP3 ADD SWAP2 SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x539D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x5431 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53C1 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP9 ADD PUSH1 0x3F DUP2 ADD DUP11 SGT PUSH2 0x53D3 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP6 DUP2 ADD CALLDATALOAD PUSH1 0x40 PUSH2 0x53E5 PUSH2 0x5144 DUP4 PUSH2 0x521D JUMP JUMPDEST DUP3 DUP2 MSTORE SWAP2 DUP6 SHL DUP4 ADD DUP2 ADD SWAP2 DUP9 DUP2 ADD SWAP1 DUP14 DUP5 GT ISZERO PUSH2 0x5402 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST SWAP4 DUP3 ADD SWAP4 JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x5420 JUMPI DUP5 CALLDATALOAD DUP3 MSTORE SWAP4 DUP10 ADD SWAP4 SWAP1 DUP10 ADD SWAP1 PUSH2 0x5407 JUMP JUMPDEST DUP9 MSTORE POP POP POP SWAP4 DUP6 ADD SWAP4 POP DUP5 ADD PUSH2 0x53A1 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x544F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x545F PUSH2 0x5144 DUP4 PUSH2 0x521D 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 0x547E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x5352 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A3 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP PUSH1 0xA0 DUP1 PUSH1 0x1F NOT DUP5 DUP14 SUB ADD SLT ISZERO PUSH2 0x54BE JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x54C6 PUSH2 0x50A3 JUMP JUMPDEST DUP8 DUP5 ADD CALLDATALOAD PUSH1 0x2 DUP2 LT PUSH2 0x54D8 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP5 DUP2 ADD CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0x54EE JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x54FC DUP15 DUP12 DUP4 DUP10 ADD ADD PUSH2 0x5125 JUMP JUMPDEST DUP11 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH2 0x550E DUP2 DUP8 ADD PUSH2 0x51CB JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH1 0x80 SWAP2 POP DUP2 DUP7 ADD CALLDATALOAD DUP2 DUP5 ADD MSTORE POP DUP3 DUP6 ADD CALLDATALOAD SWAP3 POP DUP4 DUP4 GT ISZERO PUSH2 0x5533 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x5541 DUP14 DUP11 DUP6 DUP9 ADD ADD PUSH2 0x5125 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP7 MSTORE POP POP POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x5482 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5566 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x5576 PUSH2 0x5144 DUP4 PUSH2 0x521D 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 0x5595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x5352 JUMPI DUP1 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x5599 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x55C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x55E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55EC DUP10 DUP4 DUP11 ADD PUSH2 0x5241 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x560E DUP10 DUP4 DUP11 ADD PUSH2 0x535D JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5630 DUP10 DUP4 DUP11 ADD PUSH2 0x543E JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5652 DUP10 DUP4 DUP11 ADD PUSH2 0x5555 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5668 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5675 DUP9 DUP3 DUP10 ADD PUSH2 0x535D 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 0x5695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x56AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x56B9 DUP7 DUP4 DUP8 ADD PUSH2 0x5241 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x56CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x56DC DUP6 DUP3 DUP7 ADD PUSH2 0x535D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x56FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x5713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x571F DUP8 DUP4 DUP9 ADD PUSH2 0x543E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5741 DUP8 DUP4 DUP9 ADD PUSH2 0x5555 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5764 DUP7 DUP3 DUP8 ADD PUSH2 0x535D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3534 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 0x5797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x57D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57DD DUP11 DUP3 DUP12 ADD PUSH2 0x5125 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x57EE DUP2 PUSH2 0x576E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5811 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x581C DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x582C DUP2 PUSH2 0x576E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x584B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD7E JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x58A4 DUP2 PUSH2 0x4E89 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD SWAP2 SWAP5 POP SWAP3 POP PUSH2 0x5212 DUP2 PUSH2 0x576E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4D71 DUP2 PUSH2 0x576E JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x591B JUMPI PUSH2 0x591B PUSH2 0x58D9 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5932 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4D71 DUP2 PUSH2 0x4E89 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x594F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4F54 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x596B JUMPI PUSH2 0x596B PUSH2 0x58D9 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x59B2 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x4F80 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x59C4 DUP2 DUP9 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x59FC JUMPI PUSH2 0x59FC PUSH2 0x58D9 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x17 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x546F67676C65644D616E6167656450726F706F73616C73000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5A5D PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x2 DUP7 LT PUSH2 0x5A7C JUMPI PUSH2 0x5A7C PUSH2 0x4ED4 JUMP JUMPDEST DUP6 PUSH1 0x40 DUP5 ADD MSTORE DUP5 PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x5A9A DUP2 DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 PUSH1 0x60 DUP3 ADD MSTORE DUP3 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5A9A PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2926 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x5AFE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1304 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5B0A JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5B37 JUMPI PUSH2 0x5B37 PUSH2 0x5074 JUMP JUMPDEST PUSH2 0x5B4B DUP2 PUSH2 0x5B45 DUP5 SLOAD PUSH2 0x5837 JUMP JUMPDEST DUP5 PUSH2 0x5AD7 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5B80 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x5B68 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 0x1304 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5BAF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x5B90 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x5BCD 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 PUSH1 0x0 PUSH2 0x100 DUP11 DUP4 MSTORE DUP10 PUSH1 0x20 DUP5 ADD MSTORE DUP9 PUSH1 0x40 DUP5 ADD MSTORE DUP8 PUSH1 0x60 DUP5 ADD MSTORE DUP7 PUSH1 0x80 DUP5 ADD MSTORE DUP1 PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x5C0F DUP2 DUP5 ADD DUP8 PUSH2 0x4F80 JUMP JUMPDEST SWAP5 ISZERO ISZERO PUSH1 0xC0 DUP5 ADD MSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0xE0 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x1C PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E7450726F706F73656400000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0xB PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x50726F706F736572536574000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5CD6 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4F80 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5CE8 DUP2 DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0xD PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x50726F7879557067726164656400000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x5D6B JUMPI PUSH2 0x5D6B PUSH2 0x58D9 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5DA6 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5DBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x5DCA PUSH2 0x5144 DUP3 PUSH2 0x50FD JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x5DDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x51B0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4F54 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD SWAP2 POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5E21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x56DC DUP6 DUP3 DUP7 ADD PUSH2 0x5DAB JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5E40 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5E68 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4661696C656420746F206465706C6F793A200000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x5EB0 DUP2 PUSH1 0x12 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4F54 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5ED0 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x40 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x10 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x4465706C6F796D656E744661696C656400000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5F3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x5F56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5F73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5764 DUP7 DUP3 DUP8 ADD PUSH2 0x5DAB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x506A PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x5FC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x5FCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"2320:48046:31:-:0;;;12160:895;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12573:14;;12589;;;;12605;;;;;780:22:40;;;;;812;;;;;844;;;;;-1:-1:-1;;;;;578:36:6;;;;;12688:20:31;;::::2;;::::0;12718:18;;::::2;;::::0;12746:40;;::::2;;::::0;12796:32;;;::::2;;::::0;12838:38:::2;::::0;;;;12886:34:::2;::::0;;;;12930:54:::2;::::0;;;;12994::::2;::::0;2320:48046;;14:152:61;-1:-1:-1;;;;;110:31:61;;100:42;;90:70;;156:1;153;146:12;90:70;14:152;:::o;171:159::-;250:13;;272:52;250:13;272:52;:::i;:::-;171:159;;;:::o;335:1764::-;590:6;598;606;614;622;630;638;646;654;662;706:9;697:7;693:23;736:3;732:2;728:12;725:32;;;753:1;750;743:12;725:32;785:9;779:16;804:52;850:5;804:52;:::i;:::-;925:2;910:18;;904:25;875:5;;-1:-1:-1;938:54:61;904:25;938:54;:::i;:::-;1063:2;1048:18;;1042:25;1011:7;;-1:-1:-1;1076:54:61;1042:25;1076:54;:::i;:::-;1201:2;1186:18;;1180:25;1149:7;;-1:-1:-1;1214:54:61;1180:25;1214:54;:::i;:::-;1287:7;1277:17;;;1334:3;1323:9;1319:19;1313:26;1303:36;;1379:3;1368:9;1364:19;1358:26;1348:36;;1424:3;1413:9;1409:19;1403:26;1393:36;;1469:3;1458:9;1454:19;1448:26;1438:36;;1509:2;1502:3;1498:8;1494:2;1490:17;1486:26;1483:46;;;1525:1;1522;1515:12;1483:46;-1:-1:-1;1558:2:61;1552:9;1600:2;1588:15;;-1:-1:-1;;;;;1618:34:61;;1654:22;;;1615:62;1612:185;;;1719:10;1714:3;1710:20;1707:1;1700:31;1754:4;1751:1;1744:15;1782:4;1779:1;1772:15;1612:185;1813:2;1806:22;;;1873:3;1858:19;;1852:26;1837:42;;1933:3;1918:19;;1912:26;1907:2;1895:15;;1888:51;1993:3;1978:19;;1972:26;1955:15;;;1948:51;1844:6;-1:-1:-1;2043:50:61;2088:3;2073:19;;2043:50;:::i;:::-;2033:60;;335:1764;;;;;;;;;;;;;:::o;:::-;2320:48046:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_5943":{"entryPoint":null,"id":5943,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_978":{"entryPoint":14600,"id":978,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_989":{"entryPoint":19462,"id":989,"parameterSlots":0,"returnSlots":0},"@__ReentrancyGuard_init_1362":{"entryPoint":14467,"id":1362,"parameterSlots":0,"returnSlots":0},"@__ReentrancyGuard_init_unchained_1372":{"entryPoint":19337,"id":1372,"parameterSlots":0,"returnSlots":0},"@_assertCallerIsOwnerOrSelectedExecutor_7983":{"entryPoint":15049,"id":7983,"parameterSlots":1,"returnSlots":0},"@_attemptContractDeployment_7833":{"entryPoint":16397,"id":7833,"parameterSlots":3,"returnSlots":0},"@_ceilLog2_950":{"entryPoint":19603,"id":950,"parameterSlots":1,"returnSlots":1},"@_checkOwner_1020":{"entryPoint":14839,"id":1020,"parameterSlots":0,"returnSlots":0},"@_completeDeployment_7867":{"entryPoint":18171,"id":7867,"parameterSlots":1,"returnSlots":0},"@_msgData_1164":{"entryPoint":19832,"id":1164,"parameterSlots":0,"returnSlots":2},"@_msgData_1789":{"entryPoint":null,"id":1789,"parameterSlots":0,"returnSlots":2},"@_msgData_8013":{"entryPoint":19318,"id":8013,"parameterSlots":0,"returnSlots":2},"@_msgSender_1137":{"entryPoint":14369,"id":1137,"parameterSlots":0,"returnSlots":1},"@_msgSender_1780":{"entryPoint":null,"id":1780,"parameterSlots":0,"returnSlots":1},"@_msgSender_7999":{"entryPoint":2464,"id":7999,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_1406":{"entryPoint":16390,"id":1406,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_1398":{"entryPoint":14960,"id":1398,"parameterSlots":0,"returnSlots":0},"@_payExecutorAndProtocol_7947":{"entryPoint":15914,"id":7947,"parameterSlots":2,"returnSlots":0},"@_setProxyStorage_7632":{"entryPoint":18421,"id":7632,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_1077":{"entryPoint":14733,"id":1077,"parameterSlots":1,"returnSlots":0},"@activeDeploymentId_5731":{"entryPoint":null,"id":5731,"parameterSlots":0,"returnSlots":0},"@allowManagedProposals_5740":{"entryPoint":null,"id":5740,"parameterSlots":0,"returnSlots":0},"@approve_6303":{"entryPoint":10539,"id":6303,"parameterSlots":1,"returnSlots":0},"@cancelActiveChugSplashDeployment_6429":{"entryPoint":4289,"id":6429,"parameterSlots":0,"returnSlots":0},"@claimDeployment_6500":{"entryPoint":3460,"id":6500,"parameterSlots":0,"returnSlots":0},"@claimExecutorPayment_6617":{"entryPoint":6207,"id":6617,"parameterSlots":1,"returnSlots":0},"@create3_5689":{"entryPoint":null,"id":5689,"parameterSlots":0,"returnSlots":0},"@deployments_6842":{"entryPoint":2479,"id":6842,"parameterSlots":1,"returnSlots":1},"@executeActions_7059":{"entryPoint":9229,"id":7059,"parameterSlots":3,"returnSlots":0},"@executeEntireUpgrade_6349":{"entryPoint":7480,"id":6349,"parameterSlots":5,"returnSlots":0},"@executionLockTime_5703":{"entryPoint":null,"id":5703,"parameterSlots":0,"returnSlots":0},"@executorDebt_5714":{"entryPoint":null,"id":5714,"parameterSlots":0,"returnSlots":0},"@executorPaymentPercentage_5706":{"entryPoint":null,"id":5706,"parameterSlots":0,"returnSlots":0},"@exportProxy_6702":{"entryPoint":5342,"id":6702,"parameterSlots":3,"returnSlots":0},"@finalizeUpgrade_7477":{"entryPoint":12059,"id":7477,"parameterSlots":2,"returnSlots":0},"@gasPriceCalculator_5693":{"entryPoint":null,"id":5693,"parameterSlots":0,"returnSlots":0},"@gaslesslyPropose_6218":{"entryPoint":14101,"id":6218,"parameterSlots":7,"returnSlots":0},"@getSelectedExecutor_7534":{"entryPoint":null,"id":7534,"parameterSlots":1,"returnSlots":1},"@initialize_5992":{"entryPoint":3014,"id":5992,"parameterSlots":1,"returnSlots":1},"@initiateUpgrade_7263":{"entryPoint":7518,"id":7263,"parameterSlots":2,"returnSlots":0},"@isContract_1441":{"entryPoint":null,"id":1441,"parameterSlots":1,"returnSlots":1},"@isExecuting_6856":{"entryPoint":null,"id":6856,"parameterSlots":0,"returnSlots":1},"@isProposer_7504":{"entryPoint":5060,"id":7504,"parameterSlots":1,"returnSlots":1},"@isTrustedForwarder_1118":{"entryPoint":null,"id":1118,"parameterSlots":1,"returnSlots":1},"@managedService_5697":{"entryPoint":null,"id":5697,"parameterSlots":0,"returnSlots":0},"@organizationID_5728":{"entryPoint":null,"id":5728,"parameterSlots":0,"returnSlots":0},"@ownerBondAmount_5700":{"entryPoint":null,"id":5700,"parameterSlots":0,"returnSlots":0},"@owner_1006":{"entryPoint":null,"id":1006,"parameterSlots":0,"returnSlots":1},"@propose_6149":{"entryPoint":11027,"id":6149,"parameterSlots":7,"returnSlots":0},"@proposers_5719":{"entryPoint":null,"id":5719,"parameterSlots":0,"returnSlots":0},"@protocolPaymentPercentage_5709":{"entryPoint":null,"id":5709,"parameterSlots":0,"returnSlots":0},"@registry_5686":{"entryPoint":null,"id":5686,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_1034":{"entryPoint":5040,"id":1034,"parameterSlots":0,"returnSlots":0},"@setProposer_6800":{"entryPoint":11827,"id":6800,"parameterSlots":2,"returnSlots":0},"@toggleAllowManagedProposals_6828":{"entryPoint":8933,"id":6828,"parameterSlots":0,"returnSlots":0},"@totalDebt_7515":{"entryPoint":14083,"id":7515,"parameterSlots":0,"returnSlots":1},"@totalExecutorDebt_5734":{"entryPoint":null,"id":5734,"parameterSlots":0,"returnSlots":0},"@totalProtocolDebt_5737":{"entryPoint":null,"id":5737,"parameterSlots":0,"returnSlots":0},"@transferOwnership_1057":{"entryPoint":13479,"id":1057,"parameterSlots":1,"returnSlots":0},"@verify_862":{"entryPoint":15293,"id":862,"parameterSlots":5,"returnSlots":1},"@version_9035":{"entryPoint":4876,"id":9035,"parameterSlots":0,"returnSlots":1},"@withdrawOwnerETH_6766":{"entryPoint":13623,"id":6766,"parameterSlots":0,"returnSlots":0},"abi_decode_address_payable":{"entryPoint":20939,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_array_bytes32_dyn_dyn":{"entryPoint":21341,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_ChugSplashTarget_dyn":{"entryPoint":21057,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_struct_RawChugSplashAction_dyn":{"entryPoint":21566,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint256_dyn":{"entryPoint":21845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes":{"entryPoint":20773,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_fromMemory":{"entryPoint":23979,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":20126,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":22816,"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_address_payablet_bytes32t_address":{"entryPoint":20955,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_address_payablet_bytes32t_bool_fromMemory":{"entryPoint":22660,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bool":{"entryPoint":22526,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr":{"entryPoint":22146,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr":{"entryPoint":21936,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr":{"entryPoint":22246,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":22716,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":20155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_bytes32t_uint256t_uint256t_uint256t_string_memory_ptrt_bool":{"entryPoint":22396,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_bytes32t_bytes_memory_ptr_fromMemory":{"entryPoint":24048,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint8t_bytes_memory_ptr_fromMemory":{"entryPoint":24361,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":20859,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":23864,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_array_bool_dyn":{"entryPoint":20247,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_enum_DeploymentStatus":{"entryPoint":20227,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_string":{"entryPoint":20352,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address__to_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_payable__to_t_address_payable__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bool__to_t_bool__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":22845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_915f5799182efa058318d2c10bfb6fdf3b367d7d83d124821938a981793f77b4_t_string_memory_ptr__to_t_bytes18_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":24184,"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_payable__to_t_address_payable__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_payable_t_address__to_t_address_payable_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_payable_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_address_payable_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":24447,"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_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr__to_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23206,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_bool_t_address__to_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_bool_t_address__fromStack_reversed":{"entryPoint":23517,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_rational_0_by_1__to_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":24143,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20920,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControl_$2184__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IChugSplashRegistry_$9774__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IGasPriceCalculator_$9833__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":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_address_payable_t_enum$_ChugSplashActionType_$5545_t_bytes32_t_bytes_memory_ptr__to_t_string_memory_ptr_t_address_payable_t_uint8_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":23114,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":24253,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23747,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_t_bytes32__to_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_t_bytes32__fromStack_reversed":{"entryPoint":22943,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":24109,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_19e3af283a96bd8d6e53f90b16be3952f026990932fb08e68e91fb43532287dd_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":23793,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1f3ac1230ff26091a94b75ff8e5fad20b9e84d2feff74d722872eb39af02fd34__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_210633fb5d2065404c8ca8ad14cbb7338593f94b74fe8fe406f9055331373ee5_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":23605,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_21ccd5c9189f012814a6c30a1907ed2c4bdaf8bbbe09fb39de37dd5c076f3c93__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_353d32ba4321887fff30f08be0ac2c95ae0eb97d5bb0557782a9c159993a40aa_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":23676,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_37cae0cf32405bbfdf4f8fb6e6b008eb2386d070de2c97bafbe38290df158ef1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51965c048adbd7512d3135672fe4d6ef1deafe15d18a4cb3d048efd493c6f238__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68cc56f10282cc58aac079fe25b2b3414f4eefd89d7c32080c5a85f381d44469__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_724579e27bab982d017a7d360dc241a64fbf444ff61c16f8f4c18899a52189a5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73c3d4076184b9838feedbd8e5b052e7b81ce6eb33e5d660144042390badac81__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_783c9b0a62816cbd0221d408937b53d36e126872b05695b8f346aff9b3316ad0__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_9299e799f5bd86a57c95da8888edb7cf8f9f8a911599ee655149753055d95bb1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_94fb0879ec971022842631c04539b6c897165004ebe353344a6e045c17defe29_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":23043,"id":null,"parameterSlots":2,"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_9afe9cdeb756775707de62673d317969c43f7e6c567311540f9d56f8170bd124_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":24290,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9d69eed63d2fabed7c4c92abdce9fbd1db49fe88c5f62641219c29215d31830d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ac4d5f84147b3f629727dc611f06d39474d907909e757f1237017693d0020490__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cdb62154d2ff47b4d81c32398ab8daaaacc93506f1e06c4d234ee5b680c9aab8__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_e81a5d0c54f32743c4dddc3623afc15dd89832f300e26f5cb271ae1f3f967da4__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_f4b98612bedea35f7ef2cfe8183cc6b7180cbf10fd45b4a40f65020ea3ec0f85__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fe6b160f10156dea0639bec90696772c640b9706a47f5b8c52ea1abe5858b34d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ff4b76aa5cc79574b79360f66d4e31f7f076ae34764f584e1cf284635346f8d8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_DeploymentState_$5519_memory_ptr__to_t_struct$_DeploymentState_$5519_memory_ptr__fromStack_reversed":{"entryPoint":20396,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Version_$5567_memory_ptr__to_t_struct$_Version_$5567_memory_ptr__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_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":20684,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_5672":{"entryPoint":20643,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_array_struct_ChugSplashTarget_dyn":{"entryPoint":21021,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":20733,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":24496,"id":null,"parameterSlots":4,"returnSlots":2},"checked_add_t_uint256":{"entryPoint":22792,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":23920,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":23889,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":22873,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":23255,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":23325,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":20308,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":22583,"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":23017,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":22745,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":20180,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":22896,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":20596,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":20105,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":22382,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:45773:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:162:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:61"},"nodeType":"YulFunctionCall","src":"198:21:61"},"nodeType":"YulExpressionStatement","src":"198:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:61","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:61"},"nodeType":"YulFunctionCall","src":"228:30:61"},"nodeType":"YulExpressionStatement","src":"228:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:61"},"nodeType":"YulFunctionCall","src":"274:18:61"},{"hexValue":"4554484465706f7369746564","kind":"string","nodeType":"YulLiteral","src":"294:14:61","type":"","value":"ETHDeposited"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:61"},"nodeType":"YulFunctionCall","src":"267:42:61"},"nodeType":"YulExpressionStatement","src":"267:42:61"},{"nodeType":"YulAssignment","src":"318:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"330:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"341:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"326:3:61"},"nodeType":"YulFunctionCall","src":"326:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"318:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_e81a5d0c54f32743c4dddc3623afc15dd89832f300e26f5cb271ae1f3f967da4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:61","type":""}],"src":"14:336:61"},{"body":{"nodeType":"YulBlock","src":"484:125:61","statements":[{"nodeType":"YulAssignment","src":"494:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"506:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:61"},"nodeType":"YulFunctionCall","src":"502:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"536:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"551:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"559:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"547:3:61"},"nodeType":"YulFunctionCall","src":"547:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"529:6:61"},"nodeType":"YulFunctionCall","src":"529:74:61"},"nodeType":"YulExpressionStatement","src":"529:74:61"}]},"name":"abi_encode_tuple_t_contract$_IGasPriceCalculator_$9833__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"453:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"464:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"475:4:61","type":""}],"src":"355:254:61"},{"body":{"nodeType":"YulBlock","src":"659:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"746:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"755:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"758:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"748:6:61"},"nodeType":"YulFunctionCall","src":"748:12:61"},"nodeType":"YulExpressionStatement","src":"748:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"682:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"693:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"700:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"689:3:61"},"nodeType":"YulFunctionCall","src":"689:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"679:2:61"},"nodeType":"YulFunctionCall","src":"679:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"672:6:61"},"nodeType":"YulFunctionCall","src":"672:73:61"},"nodeType":"YulIf","src":"669:93:61"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"648:5:61","type":""}],"src":"614:154:61"},{"body":{"nodeType":"YulBlock","src":"843:177:61","statements":[{"body":{"nodeType":"YulBlock","src":"889:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"898:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"901:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"891:6:61"},"nodeType":"YulFunctionCall","src":"891:12:61"},"nodeType":"YulExpressionStatement","src":"891:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"864:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"873:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"860:3:61"},"nodeType":"YulFunctionCall","src":"860:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"885:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"856:3:61"},"nodeType":"YulFunctionCall","src":"856:32:61"},"nodeType":"YulIf","src":"853:52:61"},{"nodeType":"YulVariableDeclaration","src":"914:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"940:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"927:12:61"},"nodeType":"YulFunctionCall","src":"927:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"918:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"984:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"959:24:61"},"nodeType":"YulFunctionCall","src":"959:31:61"},"nodeType":"YulExpressionStatement","src":"959:31:61"},{"nodeType":"YulAssignment","src":"999:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"1009:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"999:6:61"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"809:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"820:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"832:6:61","type":""}],"src":"773:247:61"},{"body":{"nodeType":"YulBlock","src":"1066:50:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1083:3:61"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1102:5:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1095:6:61"},"nodeType":"YulFunctionCall","src":"1095:13:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1088:6:61"},"nodeType":"YulFunctionCall","src":"1088:21:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1076:6:61"},"nodeType":"YulFunctionCall","src":"1076:34:61"},"nodeType":"YulExpressionStatement","src":"1076:34:61"}]},"name":"abi_encode_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1050:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1057:3:61","type":""}],"src":"1025:91:61"},{"body":{"nodeType":"YulBlock","src":"1216:92:61","statements":[{"nodeType":"YulAssignment","src":"1226:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1238:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1249:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1234:3:61"},"nodeType":"YulFunctionCall","src":"1234:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1226:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1268:9:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1293:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1286:6:61"},"nodeType":"YulFunctionCall","src":"1286:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1279:6:61"},"nodeType":"YulFunctionCall","src":"1279:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1261:6:61"},"nodeType":"YulFunctionCall","src":"1261:41:61"},"nodeType":"YulExpressionStatement","src":"1261:41:61"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1185:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1196:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1207:4:61","type":""}],"src":"1121:187:61"},{"body":{"nodeType":"YulBlock","src":"1414:76:61","statements":[{"nodeType":"YulAssignment","src":"1424:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1436:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1447:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1432:3:61"},"nodeType":"YulFunctionCall","src":"1432:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1424:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1466:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"1477:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1459:6:61"},"nodeType":"YulFunctionCall","src":"1459:25:61"},"nodeType":"YulExpressionStatement","src":"1459:25:61"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1383:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1394:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1405:4:61","type":""}],"src":"1313:177:61"},{"body":{"nodeType":"YulBlock","src":"1565:110:61","statements":[{"body":{"nodeType":"YulBlock","src":"1611:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1620:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1623:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1613:6:61"},"nodeType":"YulFunctionCall","src":"1613:12:61"},"nodeType":"YulExpressionStatement","src":"1613:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1586:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1595:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1582:3:61"},"nodeType":"YulFunctionCall","src":"1582:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1607:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1578:3:61"},"nodeType":"YulFunctionCall","src":"1578:32:61"},"nodeType":"YulIf","src":"1575:52:61"},{"nodeType":"YulAssignment","src":"1636:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1659:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1646:12:61"},"nodeType":"YulFunctionCall","src":"1646:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1636:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1531:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1542:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1554:6:61","type":""}],"src":"1495:180:61"},{"body":{"nodeType":"YulBlock","src":"1712:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1729:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1732:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1722:6:61"},"nodeType":"YulFunctionCall","src":"1722:88:61"},"nodeType":"YulExpressionStatement","src":"1722:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1826:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1829:4:61","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:61"},"nodeType":"YulFunctionCall","src":"1819:15:61"},"nodeType":"YulExpressionStatement","src":"1819:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1850:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1853:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1843:6:61"},"nodeType":"YulFunctionCall","src":"1843:15:61"},"nodeType":"YulExpressionStatement","src":"1843:15:61"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"1680:184:61"},{"body":{"nodeType":"YulBlock","src":"1927:89:61","statements":[{"body":{"nodeType":"YulBlock","src":"1961:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"1963:16:61"},"nodeType":"YulFunctionCall","src":"1963:18:61"},"nodeType":"YulExpressionStatement","src":"1963:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1950:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"1957:1:61","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1947:2:61"},"nodeType":"YulFunctionCall","src":"1947:12:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1940:6:61"},"nodeType":"YulFunctionCall","src":"1940:20:61"},"nodeType":"YulIf","src":"1937:46:61"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1999:3:61"},{"name":"value","nodeType":"YulIdentifier","src":"2004:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1992:6:61"},"nodeType":"YulFunctionCall","src":"1992:18:61"},"nodeType":"YulExpressionStatement","src":"1992:18:61"}]},"name":"abi_encode_enum_DeploymentStatus","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1911:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1918:3:61","type":""}],"src":"1869:147:61"},{"body":{"nodeType":"YulBlock","src":"2079:390:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2089:26:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2109:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2103:5:61"},"nodeType":"YulFunctionCall","src":"2103:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2093:6:61","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2131:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"2136:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2124:6:61"},"nodeType":"YulFunctionCall","src":"2124:19:61"},"nodeType":"YulExpressionStatement","src":"2124:19:61"},{"nodeType":"YulVariableDeclaration","src":"2152:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2162:4:61","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2156:2:61","type":""}]},{"nodeType":"YulAssignment","src":"2175:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2186:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2191:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2182:3:61"},"nodeType":"YulFunctionCall","src":"2182:12:61"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2175:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"2203:28:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2221:5:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2228:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2217:3:61"},"nodeType":"YulFunctionCall","src":"2217:14:61"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"2207:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2240:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2249:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2244:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2308:136:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2329:3:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2354:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2348:5:61"},"nodeType":"YulFunctionCall","src":"2348:13:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2341:6:61"},"nodeType":"YulFunctionCall","src":"2341:21:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2334:6:61"},"nodeType":"YulFunctionCall","src":"2334:29:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2322:6:61"},"nodeType":"YulFunctionCall","src":"2322:42:61"},"nodeType":"YulExpressionStatement","src":"2322:42:61"},{"nodeType":"YulAssignment","src":"2377:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2388:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2393:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2384:3:61"},"nodeType":"YulFunctionCall","src":"2384:12:61"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2377:3:61"}]},{"nodeType":"YulAssignment","src":"2409:25:61","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2423:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2431:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2419:3:61"},"nodeType":"YulFunctionCall","src":"2419:15:61"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2409:6:61"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2270:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"2273:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2267:2:61"},"nodeType":"YulFunctionCall","src":"2267:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2281:18:61","statements":[{"nodeType":"YulAssignment","src":"2283:14:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2292:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"2295:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:61"},"nodeType":"YulFunctionCall","src":"2288:9:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2283:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"2263:3:61","statements":[]},"src":"2259:185:61"},{"nodeType":"YulAssignment","src":"2453:10:61","value":{"name":"pos","nodeType":"YulIdentifier","src":"2460:3:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2453:3:61"}]}]},"name":"abi_encode_array_bool_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2056:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2063:3:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2071:3:61","type":""}],"src":"2021:448:61"},{"body":{"nodeType":"YulBlock","src":"2518:83:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2535:3:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2544:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"2551:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2540:3:61"},"nodeType":"YulFunctionCall","src":"2540:54:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2528:6:61"},"nodeType":"YulFunctionCall","src":"2528:67:61"},"nodeType":"YulExpressionStatement","src":"2528:67:61"}]},"name":"abi_encode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2502:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2509:3:61","type":""}],"src":"2474:127:61"},{"body":{"nodeType":"YulBlock","src":"2659:205:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2669:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2678:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2673:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2738:63:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2763:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"2768:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2759:3:61"},"nodeType":"YulFunctionCall","src":"2759:11:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2782:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"2787:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2778:3:61"},"nodeType":"YulFunctionCall","src":"2778:11:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2772:5:61"},"nodeType":"YulFunctionCall","src":"2772:18:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2752:6:61"},"nodeType":"YulFunctionCall","src":"2752:39:61"},"nodeType":"YulExpressionStatement","src":"2752:39:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2699:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"2702:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2696:2:61"},"nodeType":"YulFunctionCall","src":"2696:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2710:19:61","statements":[{"nodeType":"YulAssignment","src":"2712:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2721:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"2724:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2717:3:61"},"nodeType":"YulFunctionCall","src":"2717:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2712:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"2692:3:61","statements":[]},"src":"2688:113:61"},{"body":{"nodeType":"YulBlock","src":"2827:31:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2840:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"2845:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2836:3:61"},"nodeType":"YulFunctionCall","src":"2836:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"2854:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2829:6:61"},"nodeType":"YulFunctionCall","src":"2829:27:61"},"nodeType":"YulExpressionStatement","src":"2829:27:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2816:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"2819:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2813:2:61"},"nodeType":"YulFunctionCall","src":"2813:13:61"},"nodeType":"YulIf","src":"2810:48:61"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2637:3:61","type":""},{"name":"dst","nodeType":"YulTypedName","src":"2642:3:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"2647:6:61","type":""}],"src":"2606:258:61"},{"body":{"nodeType":"YulBlock","src":"2919:267:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2929:26:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2949:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2943:5:61"},"nodeType":"YulFunctionCall","src":"2943:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2933:6:61","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2971:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"2976:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2964:6:61"},"nodeType":"YulFunctionCall","src":"2964:19:61"},"nodeType":"YulExpressionStatement","src":"2964:19:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3018:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3025:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3014:3:61"},"nodeType":"YulFunctionCall","src":"3014:16:61"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3036:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"3041:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3032:3:61"},"nodeType":"YulFunctionCall","src":"3032:14:61"},{"name":"length","nodeType":"YulIdentifier","src":"3048:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2992:21:61"},"nodeType":"YulFunctionCall","src":"2992:63:61"},"nodeType":"YulExpressionStatement","src":"2992:63:61"},{"nodeType":"YulAssignment","src":"3064:116:61","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3079:3:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3092:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3100:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3088:3:61"},"nodeType":"YulFunctionCall","src":"3088:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3105:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3084:3:61"},"nodeType":"YulFunctionCall","src":"3084:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3075:3:61"},"nodeType":"YulFunctionCall","src":"3075:98:61"},{"kind":"number","nodeType":"YulLiteral","src":"3175:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3071:3:61"},"nodeType":"YulFunctionCall","src":"3071:109:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3064:3:61"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2896:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2903:3:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2911:3:61","type":""}],"src":"2869:317:61"},{"body":{"nodeType":"YulBlock","src":"3358:1232:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3375:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3386:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3368:6:61"},"nodeType":"YulFunctionCall","src":"3368:21:61"},"nodeType":"YulExpressionStatement","src":"3368:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3437:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3431:5:61"},"nodeType":"YulFunctionCall","src":"3431:13:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3450:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3461:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3446:3:61"},"nodeType":"YulFunctionCall","src":"3446:18:61"}],"functionName":{"name":"abi_encode_enum_DeploymentStatus","nodeType":"YulIdentifier","src":"3398:32:61"},"nodeType":"YulFunctionCall","src":"3398:67:61"},"nodeType":"YulExpressionStatement","src":"3398:67:61"},{"nodeType":"YulVariableDeclaration","src":"3474:42:61","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3504:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3512:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3500:3:61"},"nodeType":"YulFunctionCall","src":"3500:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3494:5:61"},"nodeType":"YulFunctionCall","src":"3494:22:61"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"3478:12:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3525:16:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3535:6:61","type":"","value":"0x0160"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3529:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3561:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3572:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3557:3:61"},"nodeType":"YulFunctionCall","src":"3557:18:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3577:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3550:6:61"},"nodeType":"YulFunctionCall","src":"3550:30:61"},"nodeType":"YulExpressionStatement","src":"3550:30:61"},{"nodeType":"YulVariableDeclaration","src":"3589:74:61","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"3629:12:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3647:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3658:3:61","type":"","value":"384"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3643:3:61"},"nodeType":"YulFunctionCall","src":"3643:19:61"}],"functionName":{"name":"abi_encode_array_bool_dyn","nodeType":"YulIdentifier","src":"3603:25:61"},"nodeType":"YulFunctionCall","src":"3603:60:61"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"3593:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3683:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3694:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3679:3:61"},"nodeType":"YulFunctionCall","src":"3679:18:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3709:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3717:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3705:3:61"},"nodeType":"YulFunctionCall","src":"3705:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3699:5:61"},"nodeType":"YulFunctionCall","src":"3699:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3672:6:61"},"nodeType":"YulFunctionCall","src":"3672:50:61"},"nodeType":"YulExpressionStatement","src":"3672:50:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3742:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3753:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3738:3:61"},"nodeType":"YulFunctionCall","src":"3738:19:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3769:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3777:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3765:3:61"},"nodeType":"YulFunctionCall","src":"3765:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3759:5:61"},"nodeType":"YulFunctionCall","src":"3759:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3731:6:61"},"nodeType":"YulFunctionCall","src":"3731:51:61"},"nodeType":"YulExpressionStatement","src":"3731:51:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3802:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3813:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3798:3:61"},"nodeType":"YulFunctionCall","src":"3798:19:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3829:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3837:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3825:3:61"},"nodeType":"YulFunctionCall","src":"3825:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3819:5:61"},"nodeType":"YulFunctionCall","src":"3819:23:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3791:6:61"},"nodeType":"YulFunctionCall","src":"3791:52:61"},"nodeType":"YulExpressionStatement","src":"3791:52:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3863:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3874:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3859:3:61"},"nodeType":"YulFunctionCall","src":"3859:19:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3890:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3898:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3886:3:61"},"nodeType":"YulFunctionCall","src":"3886:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3880:5:61"},"nodeType":"YulFunctionCall","src":"3880:23:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3852:6:61"},"nodeType":"YulFunctionCall","src":"3852:52:61"},"nodeType":"YulExpressionStatement","src":"3852:52:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3924:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3935:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3920:3:61"},"nodeType":"YulFunctionCall","src":"3920:19:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3951:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3959:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3947:3:61"},"nodeType":"YulFunctionCall","src":"3947:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3941:5:61"},"nodeType":"YulFunctionCall","src":"3941:23:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3913:6:61"},"nodeType":"YulFunctionCall","src":"3913:52:61"},"nodeType":"YulExpressionStatement","src":"3913:52:61"},{"nodeType":"YulVariableDeclaration","src":"3974:33:61","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3994:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4002:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3990:3:61"},"nodeType":"YulFunctionCall","src":"3990:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3984:5:61"},"nodeType":"YulFunctionCall","src":"3984:23:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3978:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4016:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4026:3:61","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4020:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4049:9:61"},{"name":"_3","nodeType":"YulIdentifier","src":"4060:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4045:3:61"},"nodeType":"YulFunctionCall","src":"4045:18:61"},{"name":"_2","nodeType":"YulIdentifier","src":"4065:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4038:6:61"},"nodeType":"YulFunctionCall","src":"4038:30:61"},"nodeType":"YulExpressionStatement","src":"4038:30:61"},{"nodeType":"YulVariableDeclaration","src":"4077:44:61","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4109:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"4117:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4105:3:61"},"nodeType":"YulFunctionCall","src":"4105:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4099:5:61"},"nodeType":"YulFunctionCall","src":"4099:22:61"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"4081:14:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4130:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4140:3:61","type":"","value":"288"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4134:2:61","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"4171:14:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4191:9:61"},{"name":"_4","nodeType":"YulIdentifier","src":"4202:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4187:3:61"},"nodeType":"YulFunctionCall","src":"4187:18:61"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"4152:18:61"},"nodeType":"YulFunctionCall","src":"4152:54:61"},"nodeType":"YulExpressionStatement","src":"4152:54:61"},{"nodeType":"YulVariableDeclaration","src":"4215:44:61","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4247:6:61"},{"name":"_4","nodeType":"YulIdentifier","src":"4255:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4243:3:61"},"nodeType":"YulFunctionCall","src":"4243:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4237:5:61"},"nodeType":"YulFunctionCall","src":"4237:22:61"},"variables":[{"name":"memberValue0_2","nodeType":"YulTypedName","src":"4219:14:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4268:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4278:3:61","type":"","value":"320"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"4272:2:61","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_2","nodeType":"YulIdentifier","src":"4306:14:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4326:9:61"},{"name":"_5","nodeType":"YulIdentifier","src":"4337:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4322:3:61"},"nodeType":"YulFunctionCall","src":"4322:18:61"}],"functionName":{"name":"abi_encode_bool","nodeType":"YulIdentifier","src":"4290:15:61"},"nodeType":"YulFunctionCall","src":"4290:51:61"},"nodeType":"YulExpressionStatement","src":"4290:51:61"},{"nodeType":"YulVariableDeclaration","src":"4350:44:61","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4382:6:61"},{"name":"_5","nodeType":"YulIdentifier","src":"4390:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4378:3:61"},"nodeType":"YulFunctionCall","src":"4378:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4372:5:61"},"nodeType":"YulFunctionCall","src":"4372:22:61"},"variables":[{"name":"memberValue0_3","nodeType":"YulTypedName","src":"4354:14:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4414:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4425:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:61"},"nodeType":"YulFunctionCall","src":"4410:18:61"},{"arguments":[{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"4438:6:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"4446:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4434:3:61"},"nodeType":"YulFunctionCall","src":"4434:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"4458:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4430:3:61"},"nodeType":"YulFunctionCall","src":"4430:95:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4403:6:61"},"nodeType":"YulFunctionCall","src":"4403:123:61"},"nodeType":"YulExpressionStatement","src":"4403:123:61"},{"nodeType":"YulAssignment","src":"4535:49:61","value":{"arguments":[{"name":"memberValue0_3","nodeType":"YulIdentifier","src":"4561:14:61"},{"name":"tail_1","nodeType":"YulIdentifier","src":"4577:6:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"4543:17:61"},"nodeType":"YulFunctionCall","src":"4543:41:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4535:4:61"}]}]},"name":"abi_encode_tuple_t_struct$_DeploymentState_$5519_memory_ptr__to_t_struct$_DeploymentState_$5519_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3327:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3338:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3349:4:61","type":""}],"src":"3191:1399:61"},{"body":{"nodeType":"YulBlock","src":"4627:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4644:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4647:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4637:6:61"},"nodeType":"YulFunctionCall","src":"4637:88:61"},"nodeType":"YulExpressionStatement","src":"4637:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4741:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4744:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4734:6:61"},"nodeType":"YulFunctionCall","src":"4734:15:61"},"nodeType":"YulExpressionStatement","src":"4734:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4765:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4768:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4758:6:61"},"nodeType":"YulFunctionCall","src":"4758:15:61"},"nodeType":"YulExpressionStatement","src":"4758:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"4595:184:61"},{"body":{"nodeType":"YulBlock","src":"4830:207:61","statements":[{"nodeType":"YulAssignment","src":"4840:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4856:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4850:5:61"},"nodeType":"YulFunctionCall","src":"4850:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4840:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"4868:35:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4890:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4898:4:61","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4886:3:61"},"nodeType":"YulFunctionCall","src":"4886:17:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4872:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4978:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4980:16:61"},"nodeType":"YulFunctionCall","src":"4980:18:61"},"nodeType":"YulExpressionStatement","src":"4980:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4921:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"4933:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4918:2:61"},"nodeType":"YulFunctionCall","src":"4918:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4957:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4969:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4954:2:61"},"nodeType":"YulFunctionCall","src":"4954:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4915:2:61"},"nodeType":"YulFunctionCall","src":"4915:62:61"},"nodeType":"YulIf","src":"4912:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5016:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5020:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5009:6:61"},"nodeType":"YulFunctionCall","src":"5009:22:61"},"nodeType":"YulExpressionStatement","src":"5009:22:61"}]},"name":"allocate_memory_5672","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4819:6:61","type":""}],"src":"4784:253:61"},{"body":{"nodeType":"YulBlock","src":"5087:289:61","statements":[{"nodeType":"YulAssignment","src":"5097:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5113:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5107:5:61"},"nodeType":"YulFunctionCall","src":"5107:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5097:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"5125:117:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5147:6:61"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"5163:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"5169:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5159:3:61"},"nodeType":"YulFunctionCall","src":"5159:13:61"},{"kind":"number","nodeType":"YulLiteral","src":"5174:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5155:3:61"},"nodeType":"YulFunctionCall","src":"5155:86:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5143:3:61"},"nodeType":"YulFunctionCall","src":"5143:99:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"5129:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"5317:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5319:16:61"},"nodeType":"YulFunctionCall","src":"5319:18:61"},"nodeType":"YulExpressionStatement","src":"5319:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5260:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"5272:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5257:2:61"},"nodeType":"YulFunctionCall","src":"5257:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5296:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"5308:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5293:2:61"},"nodeType":"YulFunctionCall","src":"5293:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5254:2:61"},"nodeType":"YulFunctionCall","src":"5254:62:61"},"nodeType":"YulIf","src":"5251:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5355:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5359:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5348:6:61"},"nodeType":"YulFunctionCall","src":"5348:22:61"},"nodeType":"YulExpressionStatement","src":"5348:22:61"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"5067:4:61","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"5076:6:61","type":""}],"src":"5042:334:61"},{"body":{"nodeType":"YulBlock","src":"5438:188:61","statements":[{"body":{"nodeType":"YulBlock","src":"5482:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5484:16:61"},"nodeType":"YulFunctionCall","src":"5484:18:61"},"nodeType":"YulExpressionStatement","src":"5484:18:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5454:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5462:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5451:2:61"},"nodeType":"YulFunctionCall","src":"5451:30:61"},"nodeType":"YulIf","src":"5448:56:61"},{"nodeType":"YulAssignment","src":"5513:107:61","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5533:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5541:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5529:3:61"},"nodeType":"YulFunctionCall","src":"5529:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"5546:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5525:3:61"},"nodeType":"YulFunctionCall","src":"5525:88:61"},{"kind":"number","nodeType":"YulLiteral","src":"5615:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5521:3:61"},"nodeType":"YulFunctionCall","src":"5521:99:61"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"5513:4:61"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"5418:6:61","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"5429:4:61","type":""}],"src":"5381:245:61"},{"body":{"nodeType":"YulBlock","src":"5683:410:61","statements":[{"body":{"nodeType":"YulBlock","src":"5732:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5741:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5744:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5734:6:61"},"nodeType":"YulFunctionCall","src":"5734:12:61"},"nodeType":"YulExpressionStatement","src":"5734:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5711:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5719:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5707:3:61"},"nodeType":"YulFunctionCall","src":"5707:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"5726:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5703:3:61"},"nodeType":"YulFunctionCall","src":"5703:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5696:6:61"},"nodeType":"YulFunctionCall","src":"5696:35:61"},"nodeType":"YulIf","src":"5693:55:61"},{"nodeType":"YulVariableDeclaration","src":"5757:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5780:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5767:12:61"},"nodeType":"YulFunctionCall","src":"5767:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5761:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5796:63:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5855:2:61"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"5827:27:61"},"nodeType":"YulFunctionCall","src":"5827:31:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5811:15:61"},"nodeType":"YulFunctionCall","src":"5811:48:61"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"5800:7:61","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"5875:7:61"},{"name":"_1","nodeType":"YulIdentifier","src":"5884:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5868:6:61"},"nodeType":"YulFunctionCall","src":"5868:19:61"},"nodeType":"YulExpressionStatement","src":"5868:19:61"},{"body":{"nodeType":"YulBlock","src":"5935:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5944:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5947:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5937:6:61"},"nodeType":"YulFunctionCall","src":"5937:12:61"},"nodeType":"YulExpressionStatement","src":"5937:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5910:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"5918:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5906:3:61"},"nodeType":"YulFunctionCall","src":"5906:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"5923:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5902:3:61"},"nodeType":"YulFunctionCall","src":"5902:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"5930:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5899:2:61"},"nodeType":"YulFunctionCall","src":"5899:35:61"},"nodeType":"YulIf","src":"5896:55:61"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"5977:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"5986:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5973:3:61"},"nodeType":"YulFunctionCall","src":"5973:18:61"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5997:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"6005:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5993:3:61"},"nodeType":"YulFunctionCall","src":"5993:17:61"},{"name":"_1","nodeType":"YulIdentifier","src":"6012:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5960:12:61"},"nodeType":"YulFunctionCall","src":"5960:55:61"},"nodeType":"YulExpressionStatement","src":"5960:55:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"6039:7:61"},{"name":"_1","nodeType":"YulIdentifier","src":"6048:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6035:3:61"},"nodeType":"YulFunctionCall","src":"6035:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"6053:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6031:3:61"},"nodeType":"YulFunctionCall","src":"6031:27:61"},{"kind":"number","nodeType":"YulLiteral","src":"6060:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6024:6:61"},"nodeType":"YulFunctionCall","src":"6024:38:61"},"nodeType":"YulExpressionStatement","src":"6024:38:61"},{"nodeType":"YulAssignment","src":"6071:16:61","value":{"name":"array_1","nodeType":"YulIdentifier","src":"6080:7:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"6071:5:61"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5657:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"5665:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"5673:5:61","type":""}],"src":"5631:462:61"},{"body":{"nodeType":"YulBlock","src":"6177:241:61","statements":[{"body":{"nodeType":"YulBlock","src":"6223:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6232:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6235:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6225:6:61"},"nodeType":"YulFunctionCall","src":"6225:12:61"},"nodeType":"YulExpressionStatement","src":"6225:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6198:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"6207:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6194:3:61"},"nodeType":"YulFunctionCall","src":"6194:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"6219:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6190:3:61"},"nodeType":"YulFunctionCall","src":"6190:32:61"},"nodeType":"YulIf","src":"6187:52:61"},{"nodeType":"YulVariableDeclaration","src":"6248:37:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6275:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6262:12:61"},"nodeType":"YulFunctionCall","src":"6262:23:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6252:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"6328:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6337:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6340:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6330:6:61"},"nodeType":"YulFunctionCall","src":"6330:12:61"},"nodeType":"YulExpressionStatement","src":"6330:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6300:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"6308:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6297:2:61"},"nodeType":"YulFunctionCall","src":"6297:30:61"},"nodeType":"YulIf","src":"6294:50:61"},{"nodeType":"YulAssignment","src":"6353:59:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6384:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"6395:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6380:3:61"},"nodeType":"YulFunctionCall","src":"6380:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6404:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6363:16:61"},"nodeType":"YulFunctionCall","src":"6363:49:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6353:6:61"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6143:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6154:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6166:6:61","type":""}],"src":"6098:320:61"},{"body":{"nodeType":"YulBlock","src":"6542:99:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6559:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6570:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6552:6:61"},"nodeType":"YulFunctionCall","src":"6552:21:61"},"nodeType":"YulExpressionStatement","src":"6552:21:61"},{"nodeType":"YulAssignment","src":"6582:53:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6608:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6620:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6631:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6616:3:61"},"nodeType":"YulFunctionCall","src":"6616:18:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"6590:17:61"},"nodeType":"YulFunctionCall","src":"6590:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6582:4:61"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6511:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6522:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6533:4:61","type":""}],"src":"6423:218:61"},{"body":{"nodeType":"YulBlock","src":"6797:209:61","statements":[{"nodeType":"YulAssignment","src":"6807:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6819:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6830:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6815:3:61"},"nodeType":"YulFunctionCall","src":"6815:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6807:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6849:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6866:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6860:5:61"},"nodeType":"YulFunctionCall","src":"6860:13:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6842:6:61"},"nodeType":"YulFunctionCall","src":"6842:32:61"},"nodeType":"YulExpressionStatement","src":"6842:32:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6894:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6905:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6890:3:61"},"nodeType":"YulFunctionCall","src":"6890:20:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6922:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"6930:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6918:3:61"},"nodeType":"YulFunctionCall","src":"6918:17:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6912:5:61"},"nodeType":"YulFunctionCall","src":"6912:24:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6883:6:61"},"nodeType":"YulFunctionCall","src":"6883:54:61"},"nodeType":"YulExpressionStatement","src":"6883:54:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6957:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6968:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6953:3:61"},"nodeType":"YulFunctionCall","src":"6953:20:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6985:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"6993:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6981:3:61"},"nodeType":"YulFunctionCall","src":"6981:17:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6975:5:61"},"nodeType":"YulFunctionCall","src":"6975:24:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6946:6:61"},"nodeType":"YulFunctionCall","src":"6946:54:61"},"nodeType":"YulExpressionStatement","src":"6946:54:61"}]},"name":"abi_encode_tuple_t_struct$_Version_$5567_memory_ptr__to_t_struct$_Version_$5567_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6766:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6777:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6788:4:61","type":""}],"src":"6646:360:61"},{"body":{"nodeType":"YulBlock","src":"7112:125:61","statements":[{"nodeType":"YulAssignment","src":"7122:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7134:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7145:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7130:3:61"},"nodeType":"YulFunctionCall","src":"7130:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7122:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7164:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7179:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"7187:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7175:3:61"},"nodeType":"YulFunctionCall","src":"7175:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7157:6:61"},"nodeType":"YulFunctionCall","src":"7157:74:61"},"nodeType":"YulExpressionStatement","src":"7157:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7081:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7092:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7103:4:61","type":""}],"src":"7011:226:61"},{"body":{"nodeType":"YulBlock","src":"7299:85:61","statements":[{"nodeType":"YulAssignment","src":"7309:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7331:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7318:12:61"},"nodeType":"YulFunctionCall","src":"7318:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"7309:5:61"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7372:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7347:24:61"},"nodeType":"YulFunctionCall","src":"7347:31:61"},"nodeType":"YulExpressionStatement","src":"7347:31:61"}]},"name":"abi_decode_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7278:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"7289:5:61","type":""}],"src":"7242:142:61"},{"body":{"nodeType":"YulBlock","src":"7501:352:61","statements":[{"body":{"nodeType":"YulBlock","src":"7547:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7556:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7559:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7549:6:61"},"nodeType":"YulFunctionCall","src":"7549:12:61"},"nodeType":"YulExpressionStatement","src":"7549:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7522:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"7531:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7518:3:61"},"nodeType":"YulFunctionCall","src":"7518:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"7543:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7514:3:61"},"nodeType":"YulFunctionCall","src":"7514:32:61"},"nodeType":"YulIf","src":"7511:52:61"},{"nodeType":"YulVariableDeclaration","src":"7572:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7598:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7585:12:61"},"nodeType":"YulFunctionCall","src":"7585:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7576:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7642:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7617:24:61"},"nodeType":"YulFunctionCall","src":"7617:31:61"},"nodeType":"YulExpressionStatement","src":"7617:31:61"},{"nodeType":"YulAssignment","src":"7657:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"7667:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7657:6:61"}]},{"nodeType":"YulAssignment","src":"7681:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7708:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7719:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7704:3:61"},"nodeType":"YulFunctionCall","src":"7704:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7691:12:61"},"nodeType":"YulFunctionCall","src":"7691:32:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7681:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"7732:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7764:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7775:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7760:3:61"},"nodeType":"YulFunctionCall","src":"7760:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7747:12:61"},"nodeType":"YulFunctionCall","src":"7747:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7736:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7813:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7788:24:61"},"nodeType":"YulFunctionCall","src":"7788:33:61"},"nodeType":"YulExpressionStatement","src":"7788:33:61"},{"nodeType":"YulAssignment","src":"7830:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7840:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7830:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7451:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7462:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7474:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7482:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7490:6:61","type":""}],"src":"7389:464:61"},{"body":{"nodeType":"YulBlock","src":"7928:110:61","statements":[{"body":{"nodeType":"YulBlock","src":"7974:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7983:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7986:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7976:6:61"},"nodeType":"YulFunctionCall","src":"7976:12:61"},"nodeType":"YulExpressionStatement","src":"7976:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7949:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"7958:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7945:3:61"},"nodeType":"YulFunctionCall","src":"7945:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"7970:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7941:3:61"},"nodeType":"YulFunctionCall","src":"7941:32:61"},"nodeType":"YulIf","src":"7938:52:61"},{"nodeType":"YulAssignment","src":"7999:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8022:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8009:12:61"},"nodeType":"YulFunctionCall","src":"8009:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7999:6:61"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7894:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7905:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7917:6:61","type":""}],"src":"7858:180:61"},{"body":{"nodeType":"YulBlock","src":"8172:125:61","statements":[{"nodeType":"YulAssignment","src":"8182:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8194:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8205:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8190:3:61"},"nodeType":"YulFunctionCall","src":"8190:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8182:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8224:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8239:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"8247:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8235:3:61"},"nodeType":"YulFunctionCall","src":"8235:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8217:6:61"},"nodeType":"YulFunctionCall","src":"8217:74:61"},"nodeType":"YulExpressionStatement","src":"8217:74:61"}]},"name":"abi_encode_tuple_t_contract$_IChugSplashRegistry_$9774__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8141:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8152:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8163:4:61","type":""}],"src":"8043:254:61"},{"body":{"nodeType":"YulBlock","src":"8387:114:61","statements":[{"body":{"nodeType":"YulBlock","src":"8431:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"8433:16:61"},"nodeType":"YulFunctionCall","src":"8433:18:61"},"nodeType":"YulExpressionStatement","src":"8433:18:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8403:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"8411:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8400:2:61"},"nodeType":"YulFunctionCall","src":"8400:30:61"},"nodeType":"YulIf","src":"8397:56:61"},{"nodeType":"YulAssignment","src":"8462:33:61","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8478:1:61","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"8481:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8474:3:61"},"nodeType":"YulFunctionCall","src":"8474:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"8490:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8470:3:61"},"nodeType":"YulFunctionCall","src":"8470:25:61"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"8462:4:61"}]}]},"name":"array_allocation_size_array_struct_ChugSplashTarget_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"8367:6:61","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"8378:4:61","type":""}],"src":"8302:199:61"},{"body":{"nodeType":"YulBlock","src":"8586:2075:61","statements":[{"body":{"nodeType":"YulBlock","src":"8635:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8644:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8647:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8637:6:61"},"nodeType":"YulFunctionCall","src":"8637:12:61"},"nodeType":"YulExpressionStatement","src":"8637:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8614:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"8622:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8610:3:61"},"nodeType":"YulFunctionCall","src":"8610:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"8629:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8606:3:61"},"nodeType":"YulFunctionCall","src":"8606:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8599:6:61"},"nodeType":"YulFunctionCall","src":"8599:35:61"},"nodeType":"YulIf","src":"8596:55:61"},{"nodeType":"YulVariableDeclaration","src":"8660:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8683:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8670:12:61"},"nodeType":"YulFunctionCall","src":"8670:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8664:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8699:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"8709:4:61","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8703:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8722:87:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8805:2:61"}],"functionName":{"name":"array_allocation_size_array_struct_ChugSplashTarget_dyn","nodeType":"YulIdentifier","src":"8749:55:61"},"nodeType":"YulFunctionCall","src":"8749:59:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8733:15:61"},"nodeType":"YulFunctionCall","src":"8733:76:61"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"8726:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8818:16:61","value":{"name":"dst","nodeType":"YulIdentifier","src":"8831:3:61"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"8822:5:61","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8850:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"8855:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8843:6:61"},"nodeType":"YulFunctionCall","src":"8843:15:61"},"nodeType":"YulExpressionStatement","src":"8843:15:61"},{"nodeType":"YulAssignment","src":"8867:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8878:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"8883:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8874:3:61"},"nodeType":"YulFunctionCall","src":"8874:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"8867:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"8895:46:61","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8917:6:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8929:1:61","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"8932:2:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8925:3:61"},"nodeType":"YulFunctionCall","src":"8925:10:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8913:3:61"},"nodeType":"YulFunctionCall","src":"8913:23:61"},{"name":"_2","nodeType":"YulIdentifier","src":"8938:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8909:3:61"},"nodeType":"YulFunctionCall","src":"8909:32:61"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"8899:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"8969:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8978:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8981:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8971:6:61"},"nodeType":"YulFunctionCall","src":"8971:12:61"},"nodeType":"YulExpressionStatement","src":"8971:12:61"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"8956:6:61"},{"name":"end","nodeType":"YulIdentifier","src":"8964:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8953:2:61"},"nodeType":"YulFunctionCall","src":"8953:15:61"},"nodeType":"YulIf","src":"8950:35:61"},{"nodeType":"YulVariableDeclaration","src":"8994:26:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9009:6:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9017:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9005:3:61"},"nodeType":"YulFunctionCall","src":"9005:15:61"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"8998:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9085:1547:61","statements":[{"nodeType":"YulVariableDeclaration","src":"9099:36:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9131:3:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9118:12:61"},"nodeType":"YulFunctionCall","src":"9118:17:61"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"9103:11:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9148:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9158:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"9152:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9224:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"9242:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9252:1:61","type":"","value":"0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"9246:2:61","type":""}]},{"expression":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"9277:2:61"},{"name":"_4","nodeType":"YulIdentifier","src":"9281:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9270:6:61"},"nodeType":"YulFunctionCall","src":"9270:14:61"},"nodeType":"YulExpressionStatement","src":"9270:14:61"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"9195:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"9208:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9192:2:61"},"nodeType":"YulFunctionCall","src":"9192:19:61"},"nodeType":"YulIf","src":"9189:109:61"},{"nodeType":"YulVariableDeclaration","src":"9311:34:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9325:6:61"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"9333:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9321:3:61"},"nodeType":"YulFunctionCall","src":"9321:24:61"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"9315:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9358:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9368:4:61","type":"","value":"0xa0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"9362:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9495:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"9513:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9523:1:61","type":"","value":"0"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"9517:2:61","type":""}]},{"expression":{"arguments":[{"name":"_7","nodeType":"YulIdentifier","src":"9548:2:61"},{"name":"_7","nodeType":"YulIdentifier","src":"9552:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9541:6:61"},"nodeType":"YulFunctionCall","src":"9541:14:61"},"nodeType":"YulExpressionStatement","src":"9541:14:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"9400:3:61"},{"name":"_5","nodeType":"YulIdentifier","src":"9405:2:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9396:3:61"},"nodeType":"YulFunctionCall","src":"9396:12:61"},{"kind":"number","nodeType":"YulLiteral","src":"9410:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9392:3:61"},"nodeType":"YulFunctionCall","src":"9392:85:61"},{"name":"_6","nodeType":"YulIdentifier","src":"9479:2:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9388:3:61"},"nodeType":"YulFunctionCall","src":"9388:94:61"},"nodeType":"YulIf","src":"9385:184:61"},{"nodeType":"YulVariableDeclaration","src":"9582:35:61","value":{"arguments":[],"functionName":{"name":"allocate_memory_5672","nodeType":"YulIdentifier","src":"9595:20:61"},"nodeType":"YulFunctionCall","src":"9595:22:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9586:5:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9630:41:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"9663:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9667:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9659:3:61"},"nodeType":"YulFunctionCall","src":"9659:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9646:12:61"},"nodeType":"YulFunctionCall","src":"9646:25:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9634:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9716:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"9734:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9744:1:61","type":"","value":"0"},"variables":[{"name":"_8","nodeType":"YulTypedName","src":"9738:2:61","type":""}]},{"expression":{"arguments":[{"name":"_8","nodeType":"YulIdentifier","src":"9769:2:61"},{"name":"_8","nodeType":"YulIdentifier","src":"9773:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9762:6:61"},"nodeType":"YulFunctionCall","src":"9762:14:61"},"nodeType":"YulExpressionStatement","src":"9762:14:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9690:8:61"},{"name":"_3","nodeType":"YulIdentifier","src":"9700:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9687:2:61"},"nodeType":"YulFunctionCall","src":"9687:16:61"},"nodeType":"YulIf","src":"9684:106:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9810:5:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"9842:2:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9846:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9838:3:61"},"nodeType":"YulFunctionCall","src":"9838:17:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9857:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9834:3:61"},"nodeType":"YulFunctionCall","src":"9834:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"9862:3:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"9817:16:61"},"nodeType":"YulFunctionCall","src":"9817:49:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9803:6:61"},"nodeType":"YulFunctionCall","src":"9803:64:61"},"nodeType":"YulExpressionStatement","src":"9803:64:61"},{"nodeType":"YulVariableDeclaration","src":"9880:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9890:2:61","type":"","value":"64"},"variables":[{"name":"_9","nodeType":"YulTypedName","src":"9884:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9905:41:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"9938:2:61"},{"name":"_9","nodeType":"YulIdentifier","src":"9942:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9934:3:61"},"nodeType":"YulFunctionCall","src":"9934:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9921:12:61"},"nodeType":"YulFunctionCall","src":"9921:25:61"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"9909:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9991:77:61","statements":[{"nodeType":"YulVariableDeclaration","src":"10009:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10020:1:61","type":"","value":"0"},"variables":[{"name":"_10","nodeType":"YulTypedName","src":"10013:3:61","type":""}]},{"expression":{"arguments":[{"name":"_10","nodeType":"YulIdentifier","src":"10045:3:61"},{"name":"_10","nodeType":"YulIdentifier","src":"10050:3:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10038:6:61"},"nodeType":"YulFunctionCall","src":"10038:16:61"},"nodeType":"YulExpressionStatement","src":"10038:16:61"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"9965:8:61"},{"name":"_3","nodeType":"YulIdentifier","src":"9975:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9962:2:61"},"nodeType":"YulFunctionCall","src":"9962:16:61"},"nodeType":"YulIf","src":"9959:109:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10092:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"10099:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10088:3:61"},"nodeType":"YulFunctionCall","src":"10088:14:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"10129:2:61"},{"name":"offset_2","nodeType":"YulIdentifier","src":"10133:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10125:3:61"},"nodeType":"YulFunctionCall","src":"10125:17:61"},{"name":"_2","nodeType":"YulIdentifier","src":"10144:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10121:3:61"},"nodeType":"YulFunctionCall","src":"10121:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"10149:3:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"10104:16:61"},"nodeType":"YulFunctionCall","src":"10104:49:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10081:6:61"},"nodeType":"YulFunctionCall","src":"10081:73:61"},"nodeType":"YulExpressionStatement","src":"10081:73:61"},{"nodeType":"YulVariableDeclaration","src":"10167:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10178:2:61","type":"","value":"96"},"variables":[{"name":"_11","nodeType":"YulTypedName","src":"10171:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10193:41:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"10225:2:61"},{"name":"_11","nodeType":"YulIdentifier","src":"10229:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10221:3:61"},"nodeType":"YulFunctionCall","src":"10221:12:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10208:12:61"},"nodeType":"YulFunctionCall","src":"10208:26:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10197:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10272:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10247:24:61"},"nodeType":"YulFunctionCall","src":"10247:33:61"},"nodeType":"YulExpressionStatement","src":"10247:33:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10304:5:61"},{"name":"_9","nodeType":"YulIdentifier","src":"10311:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10300:3:61"},"nodeType":"YulFunctionCall","src":"10300:14:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"10316:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10293:6:61"},"nodeType":"YulFunctionCall","src":"10293:31:61"},"nodeType":"YulExpressionStatement","src":"10293:31:61"},{"nodeType":"YulVariableDeclaration","src":"10337:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10348:3:61","type":"","value":"128"},"variables":[{"name":"_12","nodeType":"YulTypedName","src":"10341:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10364:41:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"10396:2:61"},{"name":"_12","nodeType":"YulIdentifier","src":"10400:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10392:3:61"},"nodeType":"YulFunctionCall","src":"10392:12:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10379:12:61"},"nodeType":"YulFunctionCall","src":"10379:26:61"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"10368:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"10443:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10418:24:61"},"nodeType":"YulFunctionCall","src":"10418:33:61"},"nodeType":"YulExpressionStatement","src":"10418:33:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10475:5:61"},{"name":"_11","nodeType":"YulIdentifier","src":"10482:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10471:3:61"},"nodeType":"YulFunctionCall","src":"10471:15:61"},{"name":"value_2","nodeType":"YulIdentifier","src":"10488:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10464:6:61"},"nodeType":"YulFunctionCall","src":"10464:32:61"},"nodeType":"YulExpressionStatement","src":"10464:32:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10520:5:61"},{"name":"_12","nodeType":"YulIdentifier","src":"10527:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10516:3:61"},"nodeType":"YulFunctionCall","src":"10516:15:61"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"10550:2:61"},{"name":"_6","nodeType":"YulIdentifier","src":"10554:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10546:3:61"},"nodeType":"YulFunctionCall","src":"10546:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10533:12:61"},"nodeType":"YulFunctionCall","src":"10533:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10509:6:61"},"nodeType":"YulFunctionCall","src":"10509:50:61"},"nodeType":"YulExpressionStatement","src":"10509:50:61"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10579:3:61"},{"name":"value","nodeType":"YulIdentifier","src":"10584:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10572:6:61"},"nodeType":"YulFunctionCall","src":"10572:18:61"},"nodeType":"YulExpressionStatement","src":"10572:18:61"},{"nodeType":"YulAssignment","src":"10603:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10614:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"10619:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10610:3:61"},"nodeType":"YulFunctionCall","src":"10610:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"10603:3:61"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9040:3:61"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"9045:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9037:2:61"},"nodeType":"YulFunctionCall","src":"9037:15:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9053:23:61","statements":[{"nodeType":"YulAssignment","src":"9055:19:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9066:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9071:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9062:3:61"},"nodeType":"YulFunctionCall","src":"9062:12:61"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"9055:3:61"}]}]},"pre":{"nodeType":"YulBlock","src":"9033:3:61","statements":[]},"src":"9029:1603:61"},{"nodeType":"YulAssignment","src":"10641:14:61","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"10650:5:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"10641:5:61"}]}]},"name":"abi_decode_array_struct_ChugSplashTarget_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8560:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"8568:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"8576:5:61","type":""}],"src":"8506:2155:61"},{"body":{"nodeType":"YulBlock","src":"10740:1663:61","statements":[{"body":{"nodeType":"YulBlock","src":"10789:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10798:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10801:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10791:6:61"},"nodeType":"YulFunctionCall","src":"10791:12:61"},"nodeType":"YulExpressionStatement","src":"10791:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10768:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"10776:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10764:3:61"},"nodeType":"YulFunctionCall","src":"10764:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"10783:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10760:3:61"},"nodeType":"YulFunctionCall","src":"10760:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10753:6:61"},"nodeType":"YulFunctionCall","src":"10753:35:61"},"nodeType":"YulIf","src":"10750:55:61"},{"nodeType":"YulVariableDeclaration","src":"10814:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10837:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10824:12:61"},"nodeType":"YulFunctionCall","src":"10824:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10818:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10853:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"10863:4:61","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"10857:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10876:87:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10959:2:61"}],"functionName":{"name":"array_allocation_size_array_struct_ChugSplashTarget_dyn","nodeType":"YulIdentifier","src":"10903:55:61"},"nodeType":"YulFunctionCall","src":"10903:59:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"10887:15:61"},"nodeType":"YulFunctionCall","src":"10887:76:61"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"10880:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10972:16:61","value":{"name":"dst","nodeType":"YulIdentifier","src":"10985:3:61"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"10976:5:61","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"11004:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"11009:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10997:6:61"},"nodeType":"YulFunctionCall","src":"10997:15:61"},"nodeType":"YulExpressionStatement","src":"10997:15:61"},{"nodeType":"YulAssignment","src":"11021:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"11032:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"11037:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11028:3:61"},"nodeType":"YulFunctionCall","src":"11028:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"11021:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"11049:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"11059:1:61","type":"","value":"5"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"11053:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11069:47:61","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11091:6:61"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"11103:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"11107:2:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11099:3:61"},"nodeType":"YulFunctionCall","src":"11099:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11087:3:61"},"nodeType":"YulFunctionCall","src":"11087:24:61"},{"name":"_2","nodeType":"YulIdentifier","src":"11113:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11083:3:61"},"nodeType":"YulFunctionCall","src":"11083:33:61"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"11073:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"11144:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11153:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11156:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11146:6:61"},"nodeType":"YulFunctionCall","src":"11146:12:61"},"nodeType":"YulExpressionStatement","src":"11146:12:61"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"11131:6:61"},{"name":"end","nodeType":"YulIdentifier","src":"11139:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11128:2:61"},"nodeType":"YulFunctionCall","src":"11128:15:61"},"nodeType":"YulIf","src":"11125:35:61"},{"nodeType":"YulVariableDeclaration","src":"11169:26:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11184:6:61"},{"name":"_2","nodeType":"YulIdentifier","src":"11192:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11180:3:61"},"nodeType":"YulFunctionCall","src":"11180:15:61"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"11173:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"11260:1114:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11274:36:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11306:3:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11293:12:61"},"nodeType":"YulFunctionCall","src":"11293:17:61"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"11278:11:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"11374:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11392:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"11402:1:61","type":"","value":"0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"11396:2:61","type":""}]},{"expression":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"11427:2:61"},{"name":"_4","nodeType":"YulIdentifier","src":"11431:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11420:6:61"},"nodeType":"YulFunctionCall","src":"11420:14:61"},"nodeType":"YulExpressionStatement","src":"11420:14:61"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"11329:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"11342:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11326:2:61"},"nodeType":"YulFunctionCall","src":"11326:35:61"},"nodeType":"YulIf","src":"11323:125:61"},{"nodeType":"YulVariableDeclaration","src":"11461:34:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11475:6:61"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"11483:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11471:3:61"},"nodeType":"YulFunctionCall","src":"11471:24:61"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"11465:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"11553:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11571:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"11581:1:61","type":"","value":"0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"11575:2:61","type":""}]},{"expression":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"11606:2:61"},{"name":"_6","nodeType":"YulIdentifier","src":"11610:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11599:6:61"},"nodeType":"YulFunctionCall","src":"11599:14:61"},"nodeType":"YulExpressionStatement","src":"11599:14:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"11526:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"11530:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11522:3:61"},"nodeType":"YulFunctionCall","src":"11522:11:61"},{"name":"end","nodeType":"YulIdentifier","src":"11535:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11518:3:61"},"nodeType":"YulFunctionCall","src":"11518:21:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11511:6:61"},"nodeType":"YulFunctionCall","src":"11511:29:61"},"nodeType":"YulIf","src":"11508:119:61"},{"nodeType":"YulVariableDeclaration","src":"11640:35:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"11667:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"11671:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11663:3:61"},"nodeType":"YulFunctionCall","src":"11663:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11650:12:61"},"nodeType":"YulFunctionCall","src":"11650:25:61"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"11644:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11688:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"11698:2:61","type":"","value":"64"},"variables":[{"name":"_8","nodeType":"YulTypedName","src":"11692:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11713:89:61","value":{"arguments":[{"arguments":[{"name":"_7","nodeType":"YulIdentifier","src":"11798:2:61"}],"functionName":{"name":"array_allocation_size_array_struct_ChugSplashTarget_dyn","nodeType":"YulIdentifier","src":"11742:55:61"},"nodeType":"YulFunctionCall","src":"11742:59:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"11726:15:61"},"nodeType":"YulFunctionCall","src":"11726:76:61"},"variables":[{"name":"dst_2","nodeType":"YulTypedName","src":"11717:5:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11815:18:61","value":{"name":"dst_2","nodeType":"YulIdentifier","src":"11828:5:61"},"variables":[{"name":"dst_3","nodeType":"YulTypedName","src":"11819:5:61","type":""}]},{"expression":{"arguments":[{"name":"dst_2","nodeType":"YulIdentifier","src":"11853:5:61"},{"name":"_7","nodeType":"YulIdentifier","src":"11860:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11846:6:61"},"nodeType":"YulFunctionCall","src":"11846:17:61"},"nodeType":"YulExpressionStatement","src":"11846:17:61"},{"nodeType":"YulAssignment","src":"11876:23:61","value":{"arguments":[{"name":"dst_2","nodeType":"YulIdentifier","src":"11889:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"11896:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11885:3:61"},"nodeType":"YulFunctionCall","src":"11885:14:61"},"variableNames":[{"name":"dst_2","nodeType":"YulIdentifier","src":"11876:5:61"}]},{"nodeType":"YulVariableDeclaration","src":"11912:45:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"11936:2:61"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"11944:2:61"},{"name":"_7","nodeType":"YulIdentifier","src":"11948:2:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11940:3:61"},"nodeType":"YulFunctionCall","src":"11940:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11932:3:61"},"nodeType":"YulFunctionCall","src":"11932:20:61"},{"name":"_8","nodeType":"YulIdentifier","src":"11954:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11928:3:61"},"nodeType":"YulFunctionCall","src":"11928:29:61"},"variables":[{"name":"srcEnd_1","nodeType":"YulTypedName","src":"11916:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"12003:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"12021:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"12031:1:61","type":"","value":"0"},"variables":[{"name":"_9","nodeType":"YulTypedName","src":"12025:2:61","type":""}]},{"expression":{"arguments":[{"name":"_9","nodeType":"YulIdentifier","src":"12056:2:61"},{"name":"_9","nodeType":"YulIdentifier","src":"12060:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12049:6:61"},"nodeType":"YulFunctionCall","src":"12049:14:61"},"nodeType":"YulExpressionStatement","src":"12049:14:61"}]},"condition":{"arguments":[{"name":"srcEnd_1","nodeType":"YulIdentifier","src":"11976:8:61"},{"name":"end","nodeType":"YulIdentifier","src":"11986:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11973:2:61"},"nodeType":"YulFunctionCall","src":"11973:17:61"},"nodeType":"YulIf","src":"11970:107:61"},{"nodeType":"YulVariableDeclaration","src":"12090:24:61","value":{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"12107:2:61"},{"name":"_8","nodeType":"YulIdentifier","src":"12111:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12103:3:61"},"nodeType":"YulFunctionCall","src":"12103:11:61"},"variables":[{"name":"src_1","nodeType":"YulTypedName","src":"12094:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"12195:106:61","statements":[{"expression":{"arguments":[{"name":"dst_2","nodeType":"YulIdentifier","src":"12220:5:61"},{"arguments":[{"name":"src_1","nodeType":"YulIdentifier","src":"12240:5:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12227:12:61"},"nodeType":"YulFunctionCall","src":"12227:19:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12213:6:61"},"nodeType":"YulFunctionCall","src":"12213:34:61"},"nodeType":"YulExpressionStatement","src":"12213:34:61"},{"nodeType":"YulAssignment","src":"12264:23:61","value":{"arguments":[{"name":"dst_2","nodeType":"YulIdentifier","src":"12277:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"12284:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12273:3:61"},"nodeType":"YulFunctionCall","src":"12273:14:61"},"variableNames":[{"name":"dst_2","nodeType":"YulIdentifier","src":"12264:5:61"}]}]},"condition":{"arguments":[{"name":"src_1","nodeType":"YulIdentifier","src":"12138:5:61"},{"name":"srcEnd_1","nodeType":"YulIdentifier","src":"12145:8:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12135:2:61"},"nodeType":"YulFunctionCall","src":"12135:19:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12155:27:61","statements":[{"nodeType":"YulAssignment","src":"12157:23:61","value":{"arguments":[{"name":"src_1","nodeType":"YulIdentifier","src":"12170:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"12177:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12166:3:61"},"nodeType":"YulFunctionCall","src":"12166:14:61"},"variableNames":[{"name":"src_1","nodeType":"YulIdentifier","src":"12157:5:61"}]}]},"pre":{"nodeType":"YulBlock","src":"12131:3:61","statements":[]},"src":"12127:174:61"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12321:3:61"},{"name":"dst_3","nodeType":"YulIdentifier","src":"12326:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12314:6:61"},"nodeType":"YulFunctionCall","src":"12314:18:61"},"nodeType":"YulExpressionStatement","src":"12314:18:61"},{"nodeType":"YulAssignment","src":"12345:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12356:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"12361:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12352:3:61"},"nodeType":"YulFunctionCall","src":"12352:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"12345:3:61"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11215:3:61"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"11220:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11212:2:61"},"nodeType":"YulFunctionCall","src":"11212:15:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11228:23:61","statements":[{"nodeType":"YulAssignment","src":"11230:19:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11241:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"11246:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11237:3:61"},"nodeType":"YulFunctionCall","src":"11237:12:61"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"11230:3:61"}]}]},"pre":{"nodeType":"YulBlock","src":"11208:3:61","statements":[]},"src":"11204:1170:61"},{"nodeType":"YulAssignment","src":"12383:14:61","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"12392:5:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"12383:5:61"}]}]},"name":"abi_decode_array_array_bytes32_dyn_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"10714:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"10722:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"10730:5:61","type":""}],"src":"10666:1737:61"},{"body":{"nodeType":"YulBlock","src":"12491:2090:61","statements":[{"body":{"nodeType":"YulBlock","src":"12540:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12549:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12552:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12542:6:61"},"nodeType":"YulFunctionCall","src":"12542:12:61"},"nodeType":"YulExpressionStatement","src":"12542:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12519:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"12527:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12515:3:61"},"nodeType":"YulFunctionCall","src":"12515:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"12534:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12511:3:61"},"nodeType":"YulFunctionCall","src":"12511:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12504:6:61"},"nodeType":"YulFunctionCall","src":"12504:35:61"},"nodeType":"YulIf","src":"12501:55:61"},{"nodeType":"YulVariableDeclaration","src":"12565:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12588:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12575:12:61"},"nodeType":"YulFunctionCall","src":"12575:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12569:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12604:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"12614:4:61","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12608:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12627:87:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12710:2:61"}],"functionName":{"name":"array_allocation_size_array_struct_ChugSplashTarget_dyn","nodeType":"YulIdentifier","src":"12654:55:61"},"nodeType":"YulFunctionCall","src":"12654:59:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"12638:15:61"},"nodeType":"YulFunctionCall","src":"12638:76:61"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"12631:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12723:16:61","value":{"name":"dst","nodeType":"YulIdentifier","src":"12736:3:61"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"12727:5:61","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12755:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"12760:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12748:6:61"},"nodeType":"YulFunctionCall","src":"12748:15:61"},"nodeType":"YulExpressionStatement","src":"12748:15:61"},{"nodeType":"YulAssignment","src":"12772:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12783:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"12788:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12779:3:61"},"nodeType":"YulFunctionCall","src":"12779:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"12772:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"12800:46:61","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12822:6:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12834:1:61","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"12837:2:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12830:3:61"},"nodeType":"YulFunctionCall","src":"12830:10:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12818:3:61"},"nodeType":"YulFunctionCall","src":"12818:23:61"},{"name":"_2","nodeType":"YulIdentifier","src":"12843:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12814:3:61"},"nodeType":"YulFunctionCall","src":"12814:32:61"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"12804:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"12874:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12883:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12886:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12876:6:61"},"nodeType":"YulFunctionCall","src":"12876:12:61"},"nodeType":"YulExpressionStatement","src":"12876:12:61"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"12861:6:61"},{"name":"end","nodeType":"YulIdentifier","src":"12869:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12858:2:61"},"nodeType":"YulFunctionCall","src":"12858:15:61"},"nodeType":"YulIf","src":"12855:35:61"},{"nodeType":"YulVariableDeclaration","src":"12899:26:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12914:6:61"},{"name":"_2","nodeType":"YulIdentifier","src":"12922:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12910:3:61"},"nodeType":"YulFunctionCall","src":"12910:15:61"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"12903:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"12990:1562:61","statements":[{"nodeType":"YulVariableDeclaration","src":"13004:36:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13036:3:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13023:12:61"},"nodeType":"YulFunctionCall","src":"13023:17:61"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"13008:11:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13053:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13063:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"13057:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"13129:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"13147:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13157:1:61","type":"","value":"0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"13151:2:61","type":""}]},{"expression":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"13182:2:61"},{"name":"_4","nodeType":"YulIdentifier","src":"13186:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13175:6:61"},"nodeType":"YulFunctionCall","src":"13175:14:61"},"nodeType":"YulExpressionStatement","src":"13175:14:61"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"13100:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"13113:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13097:2:61"},"nodeType":"YulFunctionCall","src":"13097:19:61"},"nodeType":"YulIf","src":"13094:109:61"},{"nodeType":"YulVariableDeclaration","src":"13216:34:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13230:6:61"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"13238:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13226:3:61"},"nodeType":"YulFunctionCall","src":"13226:24:61"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"13220:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13263:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13273:4:61","type":"","value":"0xa0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"13267:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"13400:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"13418:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13428:1:61","type":"","value":"0"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"13422:2:61","type":""}]},{"expression":{"arguments":[{"name":"_7","nodeType":"YulIdentifier","src":"13453:2:61"},{"name":"_7","nodeType":"YulIdentifier","src":"13457:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13446:6:61"},"nodeType":"YulFunctionCall","src":"13446:14:61"},"nodeType":"YulExpressionStatement","src":"13446:14:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"13305:3:61"},{"name":"_5","nodeType":"YulIdentifier","src":"13310:2:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13301:3:61"},"nodeType":"YulFunctionCall","src":"13301:12:61"},{"kind":"number","nodeType":"YulLiteral","src":"13315:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13297:3:61"},"nodeType":"YulFunctionCall","src":"13297:85:61"},{"name":"_6","nodeType":"YulIdentifier","src":"13384:2:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13293:3:61"},"nodeType":"YulFunctionCall","src":"13293:94:61"},"nodeType":"YulIf","src":"13290:184:61"},{"nodeType":"YulVariableDeclaration","src":"13487:35:61","value":{"arguments":[],"functionName":{"name":"allocate_memory_5672","nodeType":"YulIdentifier","src":"13500:20:61"},"nodeType":"YulFunctionCall","src":"13500:22:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13491:5:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13535:40:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"13567:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"13571:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13563:3:61"},"nodeType":"YulFunctionCall","src":"13563:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13550:12:61"},"nodeType":"YulFunctionCall","src":"13550:25:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"13539:7:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"13626:74:61","statements":[{"nodeType":"YulVariableDeclaration","src":"13644:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13654:1:61","type":"","value":"0"},"variables":[{"name":"_8","nodeType":"YulTypedName","src":"13648:2:61","type":""}]},{"expression":{"arguments":[{"name":"_8","nodeType":"YulIdentifier","src":"13679:2:61"},{"name":"_8","nodeType":"YulIdentifier","src":"13683:2:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13672:6:61"},"nodeType":"YulFunctionCall","src":"13672:14:61"},"nodeType":"YulExpressionStatement","src":"13672:14:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"13601:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"13610:1:61","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13598:2:61"},"nodeType":"YulFunctionCall","src":"13598:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13591:6:61"},"nodeType":"YulFunctionCall","src":"13591:22:61"},"nodeType":"YulIf","src":"13588:112:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13720:5:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"13727:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13713:6:61"},"nodeType":"YulFunctionCall","src":"13713:22:61"},"nodeType":"YulExpressionStatement","src":"13713:22:61"},{"nodeType":"YulVariableDeclaration","src":"13748:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13758:2:61","type":"","value":"64"},"variables":[{"name":"_9","nodeType":"YulTypedName","src":"13752:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13773:41:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"13806:2:61"},{"name":"_9","nodeType":"YulIdentifier","src":"13810:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13802:3:61"},"nodeType":"YulFunctionCall","src":"13802:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13789:12:61"},"nodeType":"YulFunctionCall","src":"13789:25:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"13777:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"13859:77:61","statements":[{"nodeType":"YulVariableDeclaration","src":"13877:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"13888:1:61","type":"","value":"0"},"variables":[{"name":"_10","nodeType":"YulTypedName","src":"13881:3:61","type":""}]},{"expression":{"arguments":[{"name":"_10","nodeType":"YulIdentifier","src":"13913:3:61"},{"name":"_10","nodeType":"YulIdentifier","src":"13918:3:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13906:6:61"},"nodeType":"YulFunctionCall","src":"13906:16:61"},"nodeType":"YulExpressionStatement","src":"13906:16:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"13833:8:61"},{"name":"_3","nodeType":"YulIdentifier","src":"13843:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13830:2:61"},"nodeType":"YulFunctionCall","src":"13830:16:61"},"nodeType":"YulIf","src":"13827:109:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13960:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"13967:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13956:3:61"},"nodeType":"YulFunctionCall","src":"13956:14:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"13997:2:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"14001:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13993:3:61"},"nodeType":"YulFunctionCall","src":"13993:17:61"},{"name":"_2","nodeType":"YulIdentifier","src":"14012:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13989:3:61"},"nodeType":"YulFunctionCall","src":"13989:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"14017:3:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13972:16:61"},"nodeType":"YulFunctionCall","src":"13972:49:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13949:6:61"},"nodeType":"YulFunctionCall","src":"13949:73:61"},"nodeType":"YulExpressionStatement","src":"13949:73:61"},{"nodeType":"YulVariableDeclaration","src":"14035:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"14046:2:61","type":"","value":"96"},"variables":[{"name":"_11","nodeType":"YulTypedName","src":"14039:3:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14072:5:61"},{"name":"_9","nodeType":"YulIdentifier","src":"14079:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14068:3:61"},"nodeType":"YulFunctionCall","src":"14068:14:61"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"14115:2:61"},{"name":"_11","nodeType":"YulIdentifier","src":"14119:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14111:3:61"},"nodeType":"YulFunctionCall","src":"14111:12:61"}],"functionName":{"name":"abi_decode_address_payable","nodeType":"YulIdentifier","src":"14084:26:61"},"nodeType":"YulFunctionCall","src":"14084:40:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14061:6:61"},"nodeType":"YulFunctionCall","src":"14061:64:61"},"nodeType":"YulExpressionStatement","src":"14061:64:61"},{"nodeType":"YulVariableDeclaration","src":"14138:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"14149:3:61","type":"","value":"128"},"variables":[{"name":"_12","nodeType":"YulTypedName","src":"14142:3:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14176:5:61"},{"name":"_11","nodeType":"YulIdentifier","src":"14183:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14172:3:61"},"nodeType":"YulFunctionCall","src":"14172:15:61"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"14206:2:61"},{"name":"_12","nodeType":"YulIdentifier","src":"14210:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14202:3:61"},"nodeType":"YulFunctionCall","src":"14202:12:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14189:12:61"},"nodeType":"YulFunctionCall","src":"14189:26:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14165:6:61"},"nodeType":"YulFunctionCall","src":"14165:51:61"},"nodeType":"YulExpressionStatement","src":"14165:51:61"},{"nodeType":"YulVariableDeclaration","src":"14229:41:61","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"14262:2:61"},{"name":"_6","nodeType":"YulIdentifier","src":"14266:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14258:3:61"},"nodeType":"YulFunctionCall","src":"14258:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14245:12:61"},"nodeType":"YulFunctionCall","src":"14245:25:61"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"14233:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"14315:77:61","statements":[{"nodeType":"YulVariableDeclaration","src":"14333:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"14344:1:61","type":"","value":"0"},"variables":[{"name":"_13","nodeType":"YulTypedName","src":"14337:3:61","type":""}]},{"expression":{"arguments":[{"name":"_13","nodeType":"YulIdentifier","src":"14369:3:61"},{"name":"_13","nodeType":"YulIdentifier","src":"14374:3:61"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14362:6:61"},"nodeType":"YulFunctionCall","src":"14362:16:61"},"nodeType":"YulExpressionStatement","src":"14362:16:61"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"14289:8:61"},{"name":"_3","nodeType":"YulIdentifier","src":"14299:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14286:2:61"},"nodeType":"YulFunctionCall","src":"14286:16:61"},"nodeType":"YulIf","src":"14283:109:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14416:5:61"},{"name":"_12","nodeType":"YulIdentifier","src":"14423:3:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14412:3:61"},"nodeType":"YulFunctionCall","src":"14412:15:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"14454:2:61"},{"name":"offset_2","nodeType":"YulIdentifier","src":"14458:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14450:3:61"},"nodeType":"YulFunctionCall","src":"14450:17:61"},{"name":"_2","nodeType":"YulIdentifier","src":"14469:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14446:3:61"},"nodeType":"YulFunctionCall","src":"14446:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"14474:3:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"14429:16:61"},"nodeType":"YulFunctionCall","src":"14429:49:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14405:6:61"},"nodeType":"YulFunctionCall","src":"14405:74:61"},"nodeType":"YulExpressionStatement","src":"14405:74:61"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14499:3:61"},{"name":"value","nodeType":"YulIdentifier","src":"14504:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14492:6:61"},"nodeType":"YulFunctionCall","src":"14492:18:61"},"nodeType":"YulExpressionStatement","src":"14492:18:61"},{"nodeType":"YulAssignment","src":"14523:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14534:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"14539:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14530:3:61"},"nodeType":"YulFunctionCall","src":"14530:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"14523:3:61"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12945:3:61"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"12950:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12942:2:61"},"nodeType":"YulFunctionCall","src":"12942:15:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12958:23:61","statements":[{"nodeType":"YulAssignment","src":"12960:19:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12971:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"12976:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12967:3:61"},"nodeType":"YulFunctionCall","src":"12967:12:61"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"12960:3:61"}]}]},"pre":{"nodeType":"YulBlock","src":"12938:3:61","statements":[]},"src":"12934:1618:61"},{"nodeType":"YulAssignment","src":"14561:14:61","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"14570:5:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"14561:5:61"}]}]},"name":"abi_decode_array_struct_RawChugSplashAction_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"12465:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"12473:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"12481:5:61","type":""}],"src":"12408:2173:61"},{"body":{"nodeType":"YulBlock","src":"14650:614:61","statements":[{"body":{"nodeType":"YulBlock","src":"14699:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14708:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14711:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14701:6:61"},"nodeType":"YulFunctionCall","src":"14701:12:61"},"nodeType":"YulExpressionStatement","src":"14701:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14678:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"14686:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14674:3:61"},"nodeType":"YulFunctionCall","src":"14674:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"14693:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14670:3:61"},"nodeType":"YulFunctionCall","src":"14670:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14663:6:61"},"nodeType":"YulFunctionCall","src":"14663:35:61"},"nodeType":"YulIf","src":"14660:55:61"},{"nodeType":"YulVariableDeclaration","src":"14724:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14747:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14734:12:61"},"nodeType":"YulFunctionCall","src":"14734:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14728:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14763:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"14773:4:61","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"14767:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14786:87:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14869:2:61"}],"functionName":{"name":"array_allocation_size_array_struct_ChugSplashTarget_dyn","nodeType":"YulIdentifier","src":"14813:55:61"},"nodeType":"YulFunctionCall","src":"14813:59:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"14797:15:61"},"nodeType":"YulFunctionCall","src":"14797:76:61"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"14790:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14882:16:61","value":{"name":"dst","nodeType":"YulIdentifier","src":"14895:3:61"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"14886:5:61","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14914:3:61"},{"name":"_1","nodeType":"YulIdentifier","src":"14919:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14907:6:61"},"nodeType":"YulFunctionCall","src":"14907:15:61"},"nodeType":"YulExpressionStatement","src":"14907:15:61"},{"nodeType":"YulAssignment","src":"14931:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14942:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"14947:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14938:3:61"},"nodeType":"YulFunctionCall","src":"14938:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"14931:3:61"}]},{"nodeType":"YulVariableDeclaration","src":"14959:46:61","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14981:6:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14993:1:61","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"14996:2:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14989:3:61"},"nodeType":"YulFunctionCall","src":"14989:10:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14977:3:61"},"nodeType":"YulFunctionCall","src":"14977:23:61"},{"name":"_2","nodeType":"YulIdentifier","src":"15002:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14973:3:61"},"nodeType":"YulFunctionCall","src":"14973:32:61"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"14963:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"15033:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15042:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15045:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15035:6:61"},"nodeType":"YulFunctionCall","src":"15035:12:61"},"nodeType":"YulExpressionStatement","src":"15035:12:61"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"15020:6:61"},{"name":"end","nodeType":"YulIdentifier","src":"15028:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15017:2:61"},"nodeType":"YulFunctionCall","src":"15017:15:61"},"nodeType":"YulIf","src":"15014:35:61"},{"nodeType":"YulVariableDeclaration","src":"15058:26:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15073:6:61"},{"name":"_2","nodeType":"YulIdentifier","src":"15081:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15069:3:61"},"nodeType":"YulFunctionCall","src":"15069:15:61"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"15062:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"15149:86:61","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"15170:3:61"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15188:3:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15175:12:61"},"nodeType":"YulFunctionCall","src":"15175:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15163:6:61"},"nodeType":"YulFunctionCall","src":"15163:30:61"},"nodeType":"YulExpressionStatement","src":"15163:30:61"},{"nodeType":"YulAssignment","src":"15206:19:61","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"15217:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"15222:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15213:3:61"},"nodeType":"YulFunctionCall","src":"15213:12:61"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"15206:3:61"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15104:3:61"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"15109:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15101:2:61"},"nodeType":"YulFunctionCall","src":"15101:15:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15117:23:61","statements":[{"nodeType":"YulAssignment","src":"15119:19:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15130:3:61"},{"name":"_2","nodeType":"YulIdentifier","src":"15135:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15126:3:61"},"nodeType":"YulFunctionCall","src":"15126:12:61"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"15119:3:61"}]}]},"pre":{"nodeType":"YulBlock","src":"15097:3:61","statements":[]},"src":"15093:142:61"},{"nodeType":"YulAssignment","src":"15244:14:61","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"15253:5:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"15244:5:61"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"14624:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"14632:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"14640:5:61","type":""}],"src":"14586:678:61"},{"body":{"nodeType":"YulBlock","src":"15653:1067:61","statements":[{"body":{"nodeType":"YulBlock","src":"15700:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15709:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15712:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15702:6:61"},"nodeType":"YulFunctionCall","src":"15702:12:61"},"nodeType":"YulExpressionStatement","src":"15702:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15674:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"15683:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15670:3:61"},"nodeType":"YulFunctionCall","src":"15670:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"15695:3:61","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15666:3:61"},"nodeType":"YulFunctionCall","src":"15666:33:61"},"nodeType":"YulIf","src":"15663:53:61"},{"nodeType":"YulVariableDeclaration","src":"15725:37:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15752:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15739:12:61"},"nodeType":"YulFunctionCall","src":"15739:23:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"15729:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15771:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"15781:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15775:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"15826:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15835:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15838:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15828:6:61"},"nodeType":"YulFunctionCall","src":"15828:12:61"},"nodeType":"YulExpressionStatement","src":"15828:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15814:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"15822:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15811:2:61"},"nodeType":"YulFunctionCall","src":"15811:14:61"},"nodeType":"YulIf","src":"15808:34:61"},{"nodeType":"YulAssignment","src":"15851:87:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15910:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"15921:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15906:3:61"},"nodeType":"YulFunctionCall","src":"15906:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"15930:7:61"}],"functionName":{"name":"abi_decode_array_struct_ChugSplashTarget_dyn","nodeType":"YulIdentifier","src":"15861:44:61"},"nodeType":"YulFunctionCall","src":"15861:77:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15851:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"15947:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15980:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"15991:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15976:3:61"},"nodeType":"YulFunctionCall","src":"15976:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15963:12:61"},"nodeType":"YulFunctionCall","src":"15963:32:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"15951:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"16024:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16033:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16036:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16026:6:61"},"nodeType":"YulFunctionCall","src":"16026:12:61"},"nodeType":"YulExpressionStatement","src":"16026:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"16010:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"16020:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16007:2:61"},"nodeType":"YulFunctionCall","src":"16007:16:61"},"nodeType":"YulIf","src":"16004:36:61"},{"nodeType":"YulAssignment","src":"16049:83:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16102:9:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"16113:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16098:3:61"},"nodeType":"YulFunctionCall","src":"16098:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16124:7:61"}],"functionName":{"name":"abi_decode_array_array_bytes32_dyn_dyn","nodeType":"YulIdentifier","src":"16059:38:61"},"nodeType":"YulFunctionCall","src":"16059:73:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"16049:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"16141:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16174:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"16185:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16170:3:61"},"nodeType":"YulFunctionCall","src":"16170:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16157:12:61"},"nodeType":"YulFunctionCall","src":"16157:32:61"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"16145:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"16218:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16227:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16230:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16220:6:61"},"nodeType":"YulFunctionCall","src":"16220:12:61"},"nodeType":"YulExpressionStatement","src":"16220:12:61"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"16204:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"16214:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16201:2:61"},"nodeType":"YulFunctionCall","src":"16201:16:61"},"nodeType":"YulIf","src":"16198:36:61"},{"nodeType":"YulAssignment","src":"16243:92:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16305:9:61"},{"name":"offset_2","nodeType":"YulIdentifier","src":"16316:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16301:3:61"},"nodeType":"YulFunctionCall","src":"16301:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16327:7:61"}],"functionName":{"name":"abi_decode_array_struct_RawChugSplashAction_dyn","nodeType":"YulIdentifier","src":"16253:47:61"},"nodeType":"YulFunctionCall","src":"16253:82:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"16243:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"16344:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16377:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"16388:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16373:3:61"},"nodeType":"YulFunctionCall","src":"16373:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16360:12:61"},"nodeType":"YulFunctionCall","src":"16360:32:61"},"variables":[{"name":"offset_3","nodeType":"YulTypedName","src":"16348:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"16421:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16430:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16433:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16423:6:61"},"nodeType":"YulFunctionCall","src":"16423:12:61"},"nodeType":"YulExpressionStatement","src":"16423:12:61"}]},"condition":{"arguments":[{"name":"offset_3","nodeType":"YulIdentifier","src":"16407:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"16417:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16404:2:61"},"nodeType":"YulFunctionCall","src":"16404:16:61"},"nodeType":"YulIf","src":"16401:36:61"},{"nodeType":"YulAssignment","src":"16446:73:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16489:9:61"},{"name":"offset_3","nodeType":"YulIdentifier","src":"16500:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16485:3:61"},"nodeType":"YulFunctionCall","src":"16485:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16511:7:61"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"16456:28:61"},"nodeType":"YulFunctionCall","src":"16456:63:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"16446:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"16528:49:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16561:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"16572:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16557:3:61"},"nodeType":"YulFunctionCall","src":"16557:19:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16544:12:61"},"nodeType":"YulFunctionCall","src":"16544:33:61"},"variables":[{"name":"offset_4","nodeType":"YulTypedName","src":"16532:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"16606:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16615:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16618:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16608:6:61"},"nodeType":"YulFunctionCall","src":"16608:12:61"},"nodeType":"YulExpressionStatement","src":"16608:12:61"}]},"condition":{"arguments":[{"name":"offset_4","nodeType":"YulIdentifier","src":"16592:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"16602:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16589:2:61"},"nodeType":"YulFunctionCall","src":"16589:16:61"},"nodeType":"YulIf","src":"16586:36:61"},{"nodeType":"YulAssignment","src":"16631:83:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16684:9:61"},{"name":"offset_4","nodeType":"YulIdentifier","src":"16695:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16680:3:61"},"nodeType":"YulFunctionCall","src":"16680:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16706:7:61"}],"functionName":{"name":"abi_decode_array_array_bytes32_dyn_dyn","nodeType":"YulIdentifier","src":"16641:38:61"},"nodeType":"YulFunctionCall","src":"16641:73:61"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"16631:6:61"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15587:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15598:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15610:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15618:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15626:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15634:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"15642:6:61","type":""}],"src":"15269:1451:61"},{"body":{"nodeType":"YulBlock","src":"16921:484:61","statements":[{"body":{"nodeType":"YulBlock","src":"16967:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16976:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16979:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16969:6:61"},"nodeType":"YulFunctionCall","src":"16969:12:61"},"nodeType":"YulExpressionStatement","src":"16969:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16942:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"16951:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16938:3:61"},"nodeType":"YulFunctionCall","src":"16938:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"16963:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16934:3:61"},"nodeType":"YulFunctionCall","src":"16934:32:61"},"nodeType":"YulIf","src":"16931:52:61"},{"nodeType":"YulVariableDeclaration","src":"16992:37:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17019:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"17006:12:61"},"nodeType":"YulFunctionCall","src":"17006:23:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16996:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17038:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"17048:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17042:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"17093:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17102:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17105:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17095:6:61"},"nodeType":"YulFunctionCall","src":"17095:12:61"},"nodeType":"YulExpressionStatement","src":"17095:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"17081:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"17089:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17078:2:61"},"nodeType":"YulFunctionCall","src":"17078:14:61"},"nodeType":"YulIf","src":"17075:34:61"},{"nodeType":"YulAssignment","src":"17118:87:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17177:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"17188:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17173:3:61"},"nodeType":"YulFunctionCall","src":"17173:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17197:7:61"}],"functionName":{"name":"abi_decode_array_struct_ChugSplashTarget_dyn","nodeType":"YulIdentifier","src":"17128:44:61"},"nodeType":"YulFunctionCall","src":"17128:77:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"17118:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"17214:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17247:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"17258:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17243:3:61"},"nodeType":"YulFunctionCall","src":"17243:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"17230:12:61"},"nodeType":"YulFunctionCall","src":"17230:32:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"17218:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"17291:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17300:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17303:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17293:6:61"},"nodeType":"YulFunctionCall","src":"17293:12:61"},"nodeType":"YulExpressionStatement","src":"17293:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"17277:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"17287:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17274:2:61"},"nodeType":"YulFunctionCall","src":"17274:16:61"},"nodeType":"YulIf","src":"17271:36:61"},{"nodeType":"YulAssignment","src":"17316:83:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17369:9:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"17380:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17365:3:61"},"nodeType":"YulFunctionCall","src":"17365:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17391:7:61"}],"functionName":{"name":"abi_decode_array_array_bytes32_dyn_dyn","nodeType":"YulIdentifier","src":"17326:38:61"},"nodeType":"YulFunctionCall","src":"17326:73:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"17316:6:61"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16879:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16890:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16902:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16910:6:61","type":""}],"src":"16725:680:61"},{"body":{"nodeType":"YulBlock","src":"17651:671:61","statements":[{"body":{"nodeType":"YulBlock","src":"17697:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17706:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17709:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17699:6:61"},"nodeType":"YulFunctionCall","src":"17699:12:61"},"nodeType":"YulExpressionStatement","src":"17699:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"17672:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"17681:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17668:3:61"},"nodeType":"YulFunctionCall","src":"17668:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"17693:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17664:3:61"},"nodeType":"YulFunctionCall","src":"17664:32:61"},"nodeType":"YulIf","src":"17661:52:61"},{"nodeType":"YulVariableDeclaration","src":"17722:37:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17749:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"17736:12:61"},"nodeType":"YulFunctionCall","src":"17736:23:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"17726:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17768:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"17778:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17772:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"17823:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17832:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17835:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17825:6:61"},"nodeType":"YulFunctionCall","src":"17825:12:61"},"nodeType":"YulExpressionStatement","src":"17825:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"17811:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"17819:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17808:2:61"},"nodeType":"YulFunctionCall","src":"17808:14:61"},"nodeType":"YulIf","src":"17805:34:61"},{"nodeType":"YulAssignment","src":"17848:90:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17910:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"17921:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17906:3:61"},"nodeType":"YulFunctionCall","src":"17906:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17930:7:61"}],"functionName":{"name":"abi_decode_array_struct_RawChugSplashAction_dyn","nodeType":"YulIdentifier","src":"17858:47:61"},"nodeType":"YulFunctionCall","src":"17858:80:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"17848:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"17947:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17980:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"17991:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17976:3:61"},"nodeType":"YulFunctionCall","src":"17976:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"17963:12:61"},"nodeType":"YulFunctionCall","src":"17963:32:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"17951:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"18024:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18033:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18036:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18026:6:61"},"nodeType":"YulFunctionCall","src":"18026:12:61"},"nodeType":"YulExpressionStatement","src":"18026:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"18010:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"18020:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18007:2:61"},"nodeType":"YulFunctionCall","src":"18007:16:61"},"nodeType":"YulIf","src":"18004:36:61"},{"nodeType":"YulAssignment","src":"18049:73:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18092:9:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"18103:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18088:3:61"},"nodeType":"YulFunctionCall","src":"18088:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"18114:7:61"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"18059:28:61"},"nodeType":"YulFunctionCall","src":"18059:63:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"18049:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"18131:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18164:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"18175:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18160:3:61"},"nodeType":"YulFunctionCall","src":"18160:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18147:12:61"},"nodeType":"YulFunctionCall","src":"18147:32:61"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"18135:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"18208:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18217:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18220:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18210:6:61"},"nodeType":"YulFunctionCall","src":"18210:12:61"},"nodeType":"YulExpressionStatement","src":"18210:12:61"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"18194:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"18204:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18191:2:61"},"nodeType":"YulFunctionCall","src":"18191:16:61"},"nodeType":"YulIf","src":"18188:36:61"},{"nodeType":"YulAssignment","src":"18233:83:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18286:9:61"},{"name":"offset_2","nodeType":"YulIdentifier","src":"18297:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18282:3:61"},"nodeType":"YulFunctionCall","src":"18282:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"18308:7:61"}],"functionName":{"name":"abi_decode_array_array_bytes32_dyn_dyn","nodeType":"YulIdentifier","src":"18243:38:61"},"nodeType":"YulFunctionCall","src":"18243:73:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"18233:6:61"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17601:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"17612:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"17624:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17632:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17640:6:61","type":""}],"src":"17410:912:61"},{"body":{"nodeType":"YulBlock","src":"18369:76:61","statements":[{"body":{"nodeType":"YulBlock","src":"18423:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18432:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18435:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18425:6:61"},"nodeType":"YulFunctionCall","src":"18425:12:61"},"nodeType":"YulExpressionStatement","src":"18425:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18392:5:61"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18413:5:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18406:6:61"},"nodeType":"YulFunctionCall","src":"18406:13:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18399:6:61"},"nodeType":"YulFunctionCall","src":"18399:21:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18389:2:61"},"nodeType":"YulFunctionCall","src":"18389:32:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18382:6:61"},"nodeType":"YulFunctionCall","src":"18382:40:61"},"nodeType":"YulIf","src":"18379:60:61"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18358:5:61","type":""}],"src":"18327:118:61"},{"body":{"nodeType":"YulBlock","src":"18629:615:61","statements":[{"body":{"nodeType":"YulBlock","src":"18676:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18685:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18688:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18678:6:61"},"nodeType":"YulFunctionCall","src":"18678:12:61"},"nodeType":"YulExpressionStatement","src":"18678:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"18650:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"18659:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18646:3:61"},"nodeType":"YulFunctionCall","src":"18646:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"18671:3:61","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18642:3:61"},"nodeType":"YulFunctionCall","src":"18642:33:61"},"nodeType":"YulIf","src":"18639:53:61"},{"nodeType":"YulAssignment","src":"18701:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18724:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18711:12:61"},"nodeType":"YulFunctionCall","src":"18711:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"18701:6:61"}]},{"nodeType":"YulAssignment","src":"18743:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18770:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"18781:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18766:3:61"},"nodeType":"YulFunctionCall","src":"18766:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18753:12:61"},"nodeType":"YulFunctionCall","src":"18753:32:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"18743:6:61"}]},{"nodeType":"YulAssignment","src":"18794:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18821:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"18832:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18817:3:61"},"nodeType":"YulFunctionCall","src":"18817:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18804:12:61"},"nodeType":"YulFunctionCall","src":"18804:32:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"18794:6:61"}]},{"nodeType":"YulAssignment","src":"18845:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18872:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"18883:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18868:3:61"},"nodeType":"YulFunctionCall","src":"18868:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18855:12:61"},"nodeType":"YulFunctionCall","src":"18855:32:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"18845:6:61"}]},{"nodeType":"YulAssignment","src":"18896:43:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18923:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"18934:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18919:3:61"},"nodeType":"YulFunctionCall","src":"18919:19:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18906:12:61"},"nodeType":"YulFunctionCall","src":"18906:33:61"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"18896:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"18948:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18979:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"18990:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18975:3:61"},"nodeType":"YulFunctionCall","src":"18975:19:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18962:12:61"},"nodeType":"YulFunctionCall","src":"18962:33:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"18952:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"19038:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19047:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19050:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19040:6:61"},"nodeType":"YulFunctionCall","src":"19040:12:61"},"nodeType":"YulExpressionStatement","src":"19040:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"19010:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"19018:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19007:2:61"},"nodeType":"YulFunctionCall","src":"19007:30:61"},"nodeType":"YulIf","src":"19004:50:61"},{"nodeType":"YulAssignment","src":"19063:59:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19094:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"19105:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19090:3:61"},"nodeType":"YulFunctionCall","src":"19090:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"19114:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"19073:16:61"},"nodeType":"YulFunctionCall","src":"19073:49:61"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"19063:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"19131:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19161:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"19172:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19157:3:61"},"nodeType":"YulFunctionCall","src":"19157:19:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"19144:12:61"},"nodeType":"YulFunctionCall","src":"19144:33:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"19135:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19208:5:61"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"19186:21:61"},"nodeType":"YulFunctionCall","src":"19186:28:61"},"nodeType":"YulExpressionStatement","src":"19186:28:61"},{"nodeType":"YulAssignment","src":"19223:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"19233:5:61"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"19223:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_uint256t_uint256t_uint256t_string_memory_ptrt_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18547:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"18558:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"18570:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18578:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18586:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18594:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"18602:6:61","type":""},{"name":"value5","nodeType":"YulTypedName","src":"18610:6:61","type":""},{"name":"value6","nodeType":"YulTypedName","src":"18618:6:61","type":""}],"src":"18450:794:61"},{"body":{"nodeType":"YulBlock","src":"19350:76:61","statements":[{"nodeType":"YulAssignment","src":"19360:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19372:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"19383:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19368:3:61"},"nodeType":"YulFunctionCall","src":"19368:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19360:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19402:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"19413:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19395:6:61"},"nodeType":"YulFunctionCall","src":"19395:25:61"},"nodeType":"YulExpressionStatement","src":"19395:25:61"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19319:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19330:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19341:4:61","type":""}],"src":"19249:177:61"},{"body":{"nodeType":"YulBlock","src":"19515:298:61","statements":[{"body":{"nodeType":"YulBlock","src":"19561:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19570:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19573:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19563:6:61"},"nodeType":"YulFunctionCall","src":"19563:12:61"},"nodeType":"YulExpressionStatement","src":"19563:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"19536:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"19545:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19532:3:61"},"nodeType":"YulFunctionCall","src":"19532:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"19557:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19528:3:61"},"nodeType":"YulFunctionCall","src":"19528:32:61"},"nodeType":"YulIf","src":"19525:52:61"},{"nodeType":"YulVariableDeclaration","src":"19586:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19612:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"19599:12:61"},"nodeType":"YulFunctionCall","src":"19599:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"19590:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19656:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"19631:24:61"},"nodeType":"YulFunctionCall","src":"19631:31:61"},"nodeType":"YulExpressionStatement","src":"19631:31:61"},{"nodeType":"YulAssignment","src":"19671:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"19681:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"19671:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"19695:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19727:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"19738:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19723:3:61"},"nodeType":"YulFunctionCall","src":"19723:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"19710:12:61"},"nodeType":"YulFunctionCall","src":"19710:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"19699:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"19773:7:61"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"19751:21:61"},"nodeType":"YulFunctionCall","src":"19751:30:61"},"nodeType":"YulExpressionStatement","src":"19751:30:61"},{"nodeType":"YulAssignment","src":"19790:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"19800:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"19790:6:61"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19473:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"19484:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"19496:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19504:6:61","type":""}],"src":"19431:382:61"},{"body":{"nodeType":"YulBlock","src":"19942:125:61","statements":[{"nodeType":"YulAssignment","src":"19952:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19964:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"19975:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19960:3:61"},"nodeType":"YulFunctionCall","src":"19960:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19952:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19994:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20009:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"20017:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20005:3:61"},"nodeType":"YulFunctionCall","src":"20005:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19987:6:61"},"nodeType":"YulFunctionCall","src":"19987:74:61"},"nodeType":"YulExpressionStatement","src":"19987:74:61"}]},"name":"abi_encode_tuple_t_contract$_IAccessControl_$2184__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19911:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19922:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19933:4:61","type":""}],"src":"19818:249:61"},{"body":{"nodeType":"YulBlock","src":"20127:382:61","statements":[{"nodeType":"YulAssignment","src":"20137:22:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20151:1:61","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"20154:4:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20147:3:61"},"nodeType":"YulFunctionCall","src":"20147:12:61"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"20137:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"20168:38:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"20198:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"20204:1:61","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20194:3:61"},"nodeType":"YulFunctionCall","src":"20194:12:61"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"20172:18:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"20245:31:61","statements":[{"nodeType":"YulAssignment","src":"20247:27:61","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20261:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"20269:4:61","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20257:3:61"},"nodeType":"YulFunctionCall","src":"20257:17:61"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"20247:6:61"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"20225:18:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20218:6:61"},"nodeType":"YulFunctionCall","src":"20218:26:61"},"nodeType":"YulIf","src":"20215:61:61"},{"body":{"nodeType":"YulBlock","src":"20335:168:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20356:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20359:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20349:6:61"},"nodeType":"YulFunctionCall","src":"20349:88:61"},"nodeType":"YulExpressionStatement","src":"20349:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20457:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20460:4:61","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20450:6:61"},"nodeType":"YulFunctionCall","src":"20450:15:61"},"nodeType":"YulExpressionStatement","src":"20450:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20485:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20488:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20478:6:61"},"nodeType":"YulFunctionCall","src":"20478:15:61"},"nodeType":"YulExpressionStatement","src":"20478:15:61"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"20291:18:61"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20314:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"20322:2:61","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20311:2:61"},"nodeType":"YulFunctionCall","src":"20311:14:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20288:2:61"},"nodeType":"YulFunctionCall","src":"20288:38:61"},"nodeType":"YulIf","src":"20285:218:61"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"20107:4:61","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"20116:6:61","type":""}],"src":"20072:437:61"},{"body":{"nodeType":"YulBlock","src":"20688:236:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20705:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"20716:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20698:6:61"},"nodeType":"YulFunctionCall","src":"20698:21:61"},"nodeType":"YulExpressionStatement","src":"20698:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20739:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"20750:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20735:3:61"},"nodeType":"YulFunctionCall","src":"20735:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"20755:2:61","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20728:6:61"},"nodeType":"YulFunctionCall","src":"20728:30:61"},"nodeType":"YulExpressionStatement","src":"20728:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20778:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"20789:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20774:3:61"},"nodeType":"YulFunctionCall","src":"20774:18:61"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nodeType":"YulLiteral","src":"20794:34:61","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20767:6:61"},"nodeType":"YulFunctionCall","src":"20767:62:61"},"nodeType":"YulExpressionStatement","src":"20767:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20849:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"20860:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20845:3:61"},"nodeType":"YulFunctionCall","src":"20845:18:61"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"20865:16:61","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20838:6:61"},"nodeType":"YulFunctionCall","src":"20838:44:61"},"nodeType":"YulExpressionStatement","src":"20838:44:61"},{"nodeType":"YulAssignment","src":"20891:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20903:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"20914:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20899:3:61"},"nodeType":"YulFunctionCall","src":"20899:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20891:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20665:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20679:4:61","type":""}],"src":"20514:410:61"},{"body":{"nodeType":"YulBlock","src":"21049:328:61","statements":[{"body":{"nodeType":"YulBlock","src":"21095:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21104:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21107:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21097:6:61"},"nodeType":"YulFunctionCall","src":"21097:12:61"},"nodeType":"YulExpressionStatement","src":"21097:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"21070:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"21079:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21066:3:61"},"nodeType":"YulFunctionCall","src":"21066:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"21091:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21062:3:61"},"nodeType":"YulFunctionCall","src":"21062:32:61"},"nodeType":"YulIf","src":"21059:52:61"},{"nodeType":"YulVariableDeclaration","src":"21120:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21139:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21133:5:61"},"nodeType":"YulFunctionCall","src":"21133:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"21124:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21183:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"21158:24:61"},"nodeType":"YulFunctionCall","src":"21158:31:61"},"nodeType":"YulExpressionStatement","src":"21158:31:61"},{"nodeType":"YulAssignment","src":"21198:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"21208:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"21198:6:61"}]},{"nodeType":"YulAssignment","src":"21222:35:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21242:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"21253:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21238:3:61"},"nodeType":"YulFunctionCall","src":"21238:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21232:5:61"},"nodeType":"YulFunctionCall","src":"21232:25:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"21222:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"21266:40:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21291:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"21302:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21287:3:61"},"nodeType":"YulFunctionCall","src":"21287:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21281:5:61"},"nodeType":"YulFunctionCall","src":"21281:25:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"21270:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21337:7:61"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"21315:21:61"},"nodeType":"YulFunctionCall","src":"21315:30:61"},"nodeType":"YulExpressionStatement","src":"21315:30:61"},{"nodeType":"YulAssignment","src":"21354:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"21364:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"21354:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20999:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"21010:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"21022:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21030:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21038:6:61","type":""}],"src":"20929:448:61"},{"body":{"nodeType":"YulBlock","src":"21489:87:61","statements":[{"nodeType":"YulAssignment","src":"21499:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21511:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"21522:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21507:3:61"},"nodeType":"YulFunctionCall","src":"21507:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21499:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21541:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21556:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"21564:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21552:3:61"},"nodeType":"YulFunctionCall","src":"21552:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21534:6:61"},"nodeType":"YulFunctionCall","src":"21534:36:61"},"nodeType":"YulExpressionStatement","src":"21534:36:61"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21458:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21469:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21480:4:61","type":""}],"src":"21382:194:61"},{"body":{"nodeType":"YulBlock","src":"21710:168:61","statements":[{"nodeType":"YulAssignment","src":"21720:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21732:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"21743:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21728:3:61"},"nodeType":"YulFunctionCall","src":"21728:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21720:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21762:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"21773:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21755:6:61"},"nodeType":"YulFunctionCall","src":"21755:25:61"},"nodeType":"YulExpressionStatement","src":"21755:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21800:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"21811:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21796:3:61"},"nodeType":"YulFunctionCall","src":"21796:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21820:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"21828:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21816:3:61"},"nodeType":"YulFunctionCall","src":"21816:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21789:6:61"},"nodeType":"YulFunctionCall","src":"21789:83:61"},"nodeType":"YulExpressionStatement","src":"21789:83:61"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21671:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21682:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21690:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21701:4:61","type":""}],"src":"21581:297:61"},{"body":{"nodeType":"YulBlock","src":"21961:167:61","statements":[{"body":{"nodeType":"YulBlock","src":"22007:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22016:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22019:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22009:6:61"},"nodeType":"YulFunctionCall","src":"22009:12:61"},"nodeType":"YulExpressionStatement","src":"22009:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"21982:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"21991:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21978:3:61"},"nodeType":"YulFunctionCall","src":"21978:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"22003:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21974:3:61"},"nodeType":"YulFunctionCall","src":"21974:32:61"},"nodeType":"YulIf","src":"21971:52:61"},{"nodeType":"YulVariableDeclaration","src":"22032:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22051:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22045:5:61"},"nodeType":"YulFunctionCall","src":"22045:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"22036:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22092:5:61"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"22070:21:61"},"nodeType":"YulFunctionCall","src":"22070:28:61"},"nodeType":"YulExpressionStatement","src":"22070:28:61"},{"nodeType":"YulAssignment","src":"22107:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"22117:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"22107:6:61"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21927:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"21938:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"21950:6:61","type":""}],"src":"21883:245:61"},{"body":{"nodeType":"YulBlock","src":"22165:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22182:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22185:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22175:6:61"},"nodeType":"YulFunctionCall","src":"22175:88:61"},"nodeType":"YulExpressionStatement","src":"22175:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22279:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22282:4:61","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22272:6:61"},"nodeType":"YulFunctionCall","src":"22272:15:61"},"nodeType":"YulExpressionStatement","src":"22272:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22303:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22306:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22296:6:61"},"nodeType":"YulFunctionCall","src":"22296:15:61"},"nodeType":"YulExpressionStatement","src":"22296:15:61"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"22133:184:61"},{"body":{"nodeType":"YulBlock","src":"22370:80:61","statements":[{"body":{"nodeType":"YulBlock","src":"22397:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22399:16:61"},"nodeType":"YulFunctionCall","src":"22399:18:61"},"nodeType":"YulExpressionStatement","src":"22399:18:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22386:1:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"22393:1:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22389:3:61"},"nodeType":"YulFunctionCall","src":"22389:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22383:2:61"},"nodeType":"YulFunctionCall","src":"22383:13:61"},"nodeType":"YulIf","src":"22380:39:61"},{"nodeType":"YulAssignment","src":"22428:16:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22439:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"22442:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22435:3:61"},"nodeType":"YulFunctionCall","src":"22435:9:61"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"22428:3:61"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"22353:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"22356:1:61","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"22362:3:61","type":""}],"src":"22322:128:61"},{"body":{"nodeType":"YulBlock","src":"22629:177:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22646:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"22657:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22639:6:61"},"nodeType":"YulFunctionCall","src":"22639:21:61"},"nodeType":"YulExpressionStatement","src":"22639:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22680:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"22691:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22676:3:61"},"nodeType":"YulFunctionCall","src":"22676:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"22696:2:61","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22669:6:61"},"nodeType":"YulFunctionCall","src":"22669:30:61"},"nodeType":"YulExpressionStatement","src":"22669:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22719:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"22730:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22715:3:61"},"nodeType":"YulFunctionCall","src":"22715:18:61"},{"hexValue":"4368756753706c6173684465706c6f796d656e74436c61696d6564","kind":"string","nodeType":"YulLiteral","src":"22735:29:61","type":"","value":"ChugSplashDeploymentClaimed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22708:6:61"},"nodeType":"YulFunctionCall","src":"22708:57:61"},"nodeType":"YulExpressionStatement","src":"22708:57:61"},{"nodeType":"YulAssignment","src":"22774:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22786:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"22797:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22782:3:61"},"nodeType":"YulFunctionCall","src":"22782:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22774:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_9299e799f5bd86a57c95da8888edb7cf8f9f8a911599ee655149753055d95bb1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22606:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22620:4:61","type":""}],"src":"22455:351:61"},{"body":{"nodeType":"YulBlock","src":"22985:179:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23002:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"23013:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22995:6:61"},"nodeType":"YulFunctionCall","src":"22995:21:61"},"nodeType":"YulExpressionStatement","src":"22995:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23036:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"23047:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23032:3:61"},"nodeType":"YulFunctionCall","src":"23032:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"23052:2:61","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23025:6:61"},"nodeType":"YulFunctionCall","src":"23025:30:61"},"nodeType":"YulExpressionStatement","src":"23025:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23075:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"23086:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23071:3:61"},"nodeType":"YulFunctionCall","src":"23071:18:61"},{"hexValue":"4368756753706c6173684465706c6f796d656e7443616e63656c6c6564","kind":"string","nodeType":"YulLiteral","src":"23091:31:61","type":"","value":"ChugSplashDeploymentCancelled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23064:6:61"},"nodeType":"YulFunctionCall","src":"23064:59:61"},"nodeType":"YulExpressionStatement","src":"23064:59:61"},{"nodeType":"YulAssignment","src":"23132:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23144:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"23155:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23140:3:61"},"nodeType":"YulFunctionCall","src":"23140:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23132:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_f4b98612bedea35f7ef2cfe8183cc6b7180cbf10fd45b4a40f65020ea3ec0f85__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22962:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22976:4:61","type":""}],"src":"22811:353:61"},{"body":{"nodeType":"YulBlock","src":"23250:170:61","statements":[{"body":{"nodeType":"YulBlock","src":"23296:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23305:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23308:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23298:6:61"},"nodeType":"YulFunctionCall","src":"23298:12:61"},"nodeType":"YulExpressionStatement","src":"23298:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"23271:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"23280:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23267:3:61"},"nodeType":"YulFunctionCall","src":"23267:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"23292:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23263:3:61"},"nodeType":"YulFunctionCall","src":"23263:32:61"},"nodeType":"YulIf","src":"23260:52:61"},{"nodeType":"YulVariableDeclaration","src":"23321:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23340:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23334:5:61"},"nodeType":"YulFunctionCall","src":"23334:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"23325:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23384:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"23359:24:61"},"nodeType":"YulFunctionCall","src":"23359:31:61"},"nodeType":"YulExpressionStatement","src":"23359:31:61"},{"nodeType":"YulAssignment","src":"23399:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"23409:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"23399:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23216:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"23227:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"23239:6:61","type":""}],"src":"23169:251:61"},{"body":{"nodeType":"YulBlock","src":"23570:198:61","statements":[{"nodeType":"YulAssignment","src":"23580:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23592:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"23603:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23588:3:61"},"nodeType":"YulFunctionCall","src":"23588:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23580:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"23615:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"23625:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23619:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23683:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23698:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"23706:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23694:3:61"},"nodeType":"YulFunctionCall","src":"23694:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23676:6:61"},"nodeType":"YulFunctionCall","src":"23676:34:61"},"nodeType":"YulExpressionStatement","src":"23676:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23730:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"23741:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23726:3:61"},"nodeType":"YulFunctionCall","src":"23726:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23750:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"23758:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23746:3:61"},"nodeType":"YulFunctionCall","src":"23746:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23719:6:61"},"nodeType":"YulFunctionCall","src":"23719:43:61"},"nodeType":"YulExpressionStatement","src":"23719:43:61"}]},"name":"abi_encode_tuple_t_address_payable_t_address__to_t_address_payable_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23531:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23542:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23550:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23561:4:61","type":""}],"src":"23425:343:61"},{"body":{"nodeType":"YulBlock","src":"23910:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"23920:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23940:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23934:5:61"},"nodeType":"YulFunctionCall","src":"23934:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"23924:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23982:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"23990:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23978:3:61"},"nodeType":"YulFunctionCall","src":"23978:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"23997:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"24002:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"23956:21:61"},"nodeType":"YulFunctionCall","src":"23956:53:61"},"nodeType":"YulExpressionStatement","src":"23956:53:61"},{"nodeType":"YulAssignment","src":"24018:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"24029:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"24034:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24025:3:61"},"nodeType":"YulFunctionCall","src":"24025:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"24018:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23886:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23891:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23902:3:61","type":""}],"src":"23773:274:61"},{"body":{"nodeType":"YulBlock","src":"24226:163:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24243:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"24254:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24236:6:61"},"nodeType":"YulFunctionCall","src":"24236:21:61"},"nodeType":"YulExpressionStatement","src":"24236:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24277:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"24288:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24273:3:61"},"nodeType":"YulFunctionCall","src":"24273:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"24293:2:61","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24266:6:61"},"nodeType":"YulFunctionCall","src":"24266:30:61"},"nodeType":"YulExpressionStatement","src":"24266:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24316:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"24327:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24312:3:61"},"nodeType":"YulFunctionCall","src":"24312:18:61"},{"hexValue":"50726f78794578706f72746564","kind":"string","nodeType":"YulLiteral","src":"24332:15:61","type":"","value":"ProxyExported"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24305:6:61"},"nodeType":"YulFunctionCall","src":"24305:43:61"},"nodeType":"YulExpressionStatement","src":"24305:43:61"},{"nodeType":"YulAssignment","src":"24357:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24369:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"24380:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24365:3:61"},"nodeType":"YulFunctionCall","src":"24365:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24357:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_ff4b76aa5cc79574b79360f66d4e31f7f076ae34764f584e1cf284635346f8d8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24203:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24217:4:61","type":""}],"src":"24052:337:61"},{"body":{"nodeType":"YulBlock","src":"24443:76:61","statements":[{"body":{"nodeType":"YulBlock","src":"24465:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24467:16:61"},"nodeType":"YulFunctionCall","src":"24467:18:61"},"nodeType":"YulExpressionStatement","src":"24467:18:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24459:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"24462:1:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24456:2:61"},"nodeType":"YulFunctionCall","src":"24456:8:61"},"nodeType":"YulIf","src":"24453:34:61"},{"nodeType":"YulAssignment","src":"24496:17:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24508:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"24511:1:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24504:3:61"},"nodeType":"YulFunctionCall","src":"24504:9:61"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"24496:4:61"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24425:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"24428:1:61","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"24434:4:61","type":""}],"src":"24394:125:61"},{"body":{"nodeType":"YulBlock","src":"24653:119:61","statements":[{"nodeType":"YulAssignment","src":"24663:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24675:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"24686:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24671:3:61"},"nodeType":"YulFunctionCall","src":"24671:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24663:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24705:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"24716:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24698:6:61"},"nodeType":"YulFunctionCall","src":"24698:25:61"},"nodeType":"YulExpressionStatement","src":"24698:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24743:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"24754:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24739:3:61"},"nodeType":"YulFunctionCall","src":"24739:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"24759:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24732:6:61"},"nodeType":"YulFunctionCall","src":"24732:34:61"},"nodeType":"YulExpressionStatement","src":"24732:34:61"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24614:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24625:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24633:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24644:4:61","type":""}],"src":"24524:248:61"},{"body":{"nodeType":"YulBlock","src":"24951:172:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24968:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"24979:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24961:6:61"},"nodeType":"YulFunctionCall","src":"24961:21:61"},"nodeType":"YulExpressionStatement","src":"24961:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25002:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25013:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24998:3:61"},"nodeType":"YulFunctionCall","src":"24998:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"25018:2:61","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24991:6:61"},"nodeType":"YulFunctionCall","src":"24991:30:61"},"nodeType":"YulExpressionStatement","src":"24991:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25041:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25052:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25037:3:61"},"nodeType":"YulFunctionCall","src":"25037:18:61"},{"hexValue":"4578656375746f725061796d656e74436c61696d6564","kind":"string","nodeType":"YulLiteral","src":"25057:24:61","type":"","value":"ExecutorPaymentClaimed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25030:6:61"},"nodeType":"YulFunctionCall","src":"25030:52:61"},"nodeType":"YulExpressionStatement","src":"25030:52:61"},{"nodeType":"YulAssignment","src":"25091:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25103:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25114:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25099:3:61"},"nodeType":"YulFunctionCall","src":"25099:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25091:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_21ccd5c9189f012814a6c30a1907ed2c4bdaf8bbbe09fb39de37dd5c076f3c93__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24928:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24942:4:61","type":""}],"src":"24777:346:61"},{"body":{"nodeType":"YulBlock","src":"25160:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25177:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25180:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25170:6:61"},"nodeType":"YulFunctionCall","src":"25170:88:61"},"nodeType":"YulExpressionStatement","src":"25170:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25274:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"25277:4:61","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25267:6:61"},"nodeType":"YulFunctionCall","src":"25267:15:61"},"nodeType":"YulExpressionStatement","src":"25267:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25298:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25301:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25291:6:61"},"nodeType":"YulFunctionCall","src":"25291:15:61"},"nodeType":"YulExpressionStatement","src":"25291:15:61"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"25128:184:61"},{"body":{"nodeType":"YulBlock","src":"25586:425:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25603:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25614:3:61","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25596:6:61"},"nodeType":"YulFunctionCall","src":"25596:22:61"},"nodeType":"YulExpressionStatement","src":"25596:22:61"},{"nodeType":"YulVariableDeclaration","src":"25627:60:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25659:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25671:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25682:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25667:3:61"},"nodeType":"YulFunctionCall","src":"25667:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"25641:17:61"},"nodeType":"YulFunctionCall","src":"25641:46:61"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25631:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25707:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25718:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25703:3:61"},"nodeType":"YulFunctionCall","src":"25703:18:61"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25727:6:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"25735:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25723:3:61"},"nodeType":"YulFunctionCall","src":"25723:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25696:6:61"},"nodeType":"YulFunctionCall","src":"25696:50:61"},"nodeType":"YulExpressionStatement","src":"25696:50:61"},{"nodeType":"YulAssignment","src":"25755:41:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25781:6:61"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25789:6:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"25763:17:61"},"nodeType":"YulFunctionCall","src":"25763:33:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25755:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"25805:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"25815:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25809:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25877:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25888:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25873:3:61"},"nodeType":"YulFunctionCall","src":"25873:18:61"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"25897:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"25905:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25893:3:61"},"nodeType":"YulFunctionCall","src":"25893:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25866:6:61"},"nodeType":"YulFunctionCall","src":"25866:43:61"},"nodeType":"YulExpressionStatement","src":"25866:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25929:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25940:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25925:3:61"},"nodeType":"YulFunctionCall","src":"25925:18:61"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25949:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"25957:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25945:3:61"},"nodeType":"YulFunctionCall","src":"25945:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25918:6:61"},"nodeType":"YulFunctionCall","src":"25918:43:61"},"nodeType":"YulExpressionStatement","src":"25918:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25981:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"25992:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25977:3:61"},"nodeType":"YulFunctionCall","src":"25977:19:61"},{"name":"value4","nodeType":"YulIdentifier","src":"25998:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25970:6:61"},"nodeType":"YulFunctionCall","src":"25970:35:61"},"nodeType":"YulExpressionStatement","src":"25970:35:61"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_t_bytes32__to_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25523:9:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25534:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25542:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25550:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25558:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25566:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25577:4:61","type":""}],"src":"25317:694:61"},{"body":{"nodeType":"YulBlock","src":"26133:125:61","statements":[{"nodeType":"YulAssignment","src":"26143:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26155:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"26166:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26151:3:61"},"nodeType":"YulFunctionCall","src":"26151:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26143:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26185:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26200:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"26208:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26196:3:61"},"nodeType":"YulFunctionCall","src":"26196:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26178:6:61"},"nodeType":"YulFunctionCall","src":"26178:74:61"},"nodeType":"YulExpressionStatement","src":"26178:74:61"}]},"name":"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26102:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26113:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26124:4:61","type":""}],"src":"26016:242:61"},{"body":{"nodeType":"YulBlock","src":"26310:148:61","statements":[{"body":{"nodeType":"YulBlock","src":"26401:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26403:16:61"},"nodeType":"YulFunctionCall","src":"26403:18:61"},"nodeType":"YulExpressionStatement","src":"26403:18:61"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"26326:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"26333:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"26323:2:61"},"nodeType":"YulFunctionCall","src":"26323:77:61"},"nodeType":"YulIf","src":"26320:103:61"},{"nodeType":"YulAssignment","src":"26432:20:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"26443:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"26450:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26439:3:61"},"nodeType":"YulFunctionCall","src":"26439:13:61"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"26432:3:61"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"26292:5:61","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"26302:3:61","type":""}],"src":"26263:195:61"},{"body":{"nodeType":"YulBlock","src":"26637:166:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26654:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"26665:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26647:6:61"},"nodeType":"YulFunctionCall","src":"26647:21:61"},"nodeType":"YulExpressionStatement","src":"26647:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26688:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"26699:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26684:3:61"},"nodeType":"YulFunctionCall","src":"26684:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"26704:2:61","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26677:6:61"},"nodeType":"YulFunctionCall","src":"26677:30:61"},"nodeType":"YulExpressionStatement","src":"26677:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26727:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"26738:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26723:3:61"},"nodeType":"YulFunctionCall","src":"26723:18:61"},{"hexValue":"50726f78696573496e69746961746564","kind":"string","nodeType":"YulLiteral","src":"26743:18:61","type":"","value":"ProxiesInitiated"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26716:6:61"},"nodeType":"YulFunctionCall","src":"26716:46:61"},"nodeType":"YulExpressionStatement","src":"26716:46:61"},{"nodeType":"YulAssignment","src":"26771:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26783:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"26794:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26779:3:61"},"nodeType":"YulFunctionCall","src":"26779:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26771:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_1f3ac1230ff26091a94b75ff8e5fad20b9e84d2feff74d722872eb39af02fd34__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26614:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26628:4:61","type":""}],"src":"26463:340:61"},{"body":{"nodeType":"YulBlock","src":"26921:88:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"26938:3:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26947:3:61","type":"","value":"248"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26966:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26959:6:61"},"nodeType":"YulFunctionCall","src":"26959:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26952:6:61"},"nodeType":"YulFunctionCall","src":"26952:22:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26943:3:61"},"nodeType":"YulFunctionCall","src":"26943:32:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26931:6:61"},"nodeType":"YulFunctionCall","src":"26931:45:61"},"nodeType":"YulExpressionStatement","src":"26931:45:61"},{"nodeType":"YulAssignment","src":"26985:18:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"26996:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"27001:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26992:3:61"},"nodeType":"YulFunctionCall","src":"26992:11:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"26985:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bool__to_t_bool__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"26897:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26902:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"26913:3:61","type":""}],"src":"26808:201:61"},{"body":{"nodeType":"YulBlock","src":"27234:243:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27251:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27262:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27244:6:61"},"nodeType":"YulFunctionCall","src":"27244:21:61"},"nodeType":"YulExpressionStatement","src":"27244:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27285:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27296:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27281:3:61"},"nodeType":"YulFunctionCall","src":"27281:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"27301:2:61","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27274:6:61"},"nodeType":"YulFunctionCall","src":"27274:30:61"},"nodeType":"YulExpressionStatement","src":"27274:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27324:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27335:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27320:3:61"},"nodeType":"YulFunctionCall","src":"27320:18:61"},{"hexValue":"546f67676c65644d616e6167656450726f706f73616c73","kind":"string","nodeType":"YulLiteral","src":"27340:25:61","type":"","value":"ToggledManagedProposals"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27313:6:61"},"nodeType":"YulFunctionCall","src":"27313:53:61"},"nodeType":"YulExpressionStatement","src":"27313:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27386:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27397:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27382:3:61"},"nodeType":"YulFunctionCall","src":"27382:20:61"},{"kind":"number","nodeType":"YulLiteral","src":"27404:3:61","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27375:6:61"},"nodeType":"YulFunctionCall","src":"27375:33:61"},"nodeType":"YulExpressionStatement","src":"27375:33:61"},{"nodeType":"YulAssignment","src":"27417:54:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"27443:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27455:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27466:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27451:3:61"},"nodeType":"YulFunctionCall","src":"27451:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"27425:17:61"},"nodeType":"YulFunctionCall","src":"27425:46:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27417:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_94fb0879ec971022842631c04539b6c897165004ebe353344a6e045c17defe29_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27203:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"27214:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27225:4:61","type":""}],"src":"27014:463:61"},{"body":{"nodeType":"YulBlock","src":"27772:451:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27789:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27800:3:61","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27782:6:61"},"nodeType":"YulFunctionCall","src":"27782:22:61"},"nodeType":"YulExpressionStatement","src":"27782:22:61"},{"nodeType":"YulVariableDeclaration","src":"27813:60:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"27845:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27857:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27868:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27853:3:61"},"nodeType":"YulFunctionCall","src":"27853:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"27827:17:61"},"nodeType":"YulFunctionCall","src":"27827:46:61"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"27817:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27893:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"27904:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27889:3:61"},"nodeType":"YulFunctionCall","src":"27889:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"27913:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"27921:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27909:3:61"},"nodeType":"YulFunctionCall","src":"27909:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27882:6:61"},"nodeType":"YulFunctionCall","src":"27882:83:61"},"nodeType":"YulExpressionStatement","src":"27882:83:61"},{"body":{"nodeType":"YulBlock","src":"27999:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"28001:16:61"},"nodeType":"YulFunctionCall","src":"28001:18:61"},"nodeType":"YulExpressionStatement","src":"28001:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"27987:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"27995:1:61","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27984:2:61"},"nodeType":"YulFunctionCall","src":"27984:13:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27977:6:61"},"nodeType":"YulFunctionCall","src":"27977:21:61"},"nodeType":"YulIf","src":"27974:47:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28041:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28052:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28037:3:61"},"nodeType":"YulFunctionCall","src":"28037:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"28057:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28030:6:61"},"nodeType":"YulFunctionCall","src":"28030:34:61"},"nodeType":"YulExpressionStatement","src":"28030:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28084:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28095:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28080:3:61"},"nodeType":"YulFunctionCall","src":"28080:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"28100:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28073:6:61"},"nodeType":"YulFunctionCall","src":"28073:34:61"},"nodeType":"YulExpressionStatement","src":"28073:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28127:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28138:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28123:3:61"},"nodeType":"YulFunctionCall","src":"28123:19:61"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"28148:6:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"28156:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28144:3:61"},"nodeType":"YulFunctionCall","src":"28144:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28116:6:61"},"nodeType":"YulFunctionCall","src":"28116:51:61"},"nodeType":"YulExpressionStatement","src":"28116:51:61"},{"nodeType":"YulAssignment","src":"28176:41:61","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"28202:6:61"},{"name":"tail_1","nodeType":"YulIdentifier","src":"28210:6:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"28184:17:61"},"nodeType":"YulFunctionCall","src":"28184:33:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28176:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_address_payable_t_enum$_ChugSplashActionType_$5545_t_bytes32_t_bytes_memory_ptr__to_t_string_memory_ptr_t_address_payable_t_uint8_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27709:9:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"27720:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"27728:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"27736:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"27744:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"27752:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27763:4:61","type":""}],"src":"27482:741:61"},{"body":{"nodeType":"YulBlock","src":"28402:178:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28419:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28430:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28412:6:61"},"nodeType":"YulFunctionCall","src":"28412:21:61"},"nodeType":"YulExpressionStatement","src":"28412:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28453:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28464:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28449:3:61"},"nodeType":"YulFunctionCall","src":"28449:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"28469:2:61","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28442:6:61"},"nodeType":"YulFunctionCall","src":"28442:30:61"},"nodeType":"YulExpressionStatement","src":"28442:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28492:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28503:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28488:3:61"},"nodeType":"YulFunctionCall","src":"28488:18:61"},{"hexValue":"4368756753706c6173684465706c6f796d656e74417070726f766564","kind":"string","nodeType":"YulLiteral","src":"28508:30:61","type":"","value":"ChugSplashDeploymentApproved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28481:6:61"},"nodeType":"YulFunctionCall","src":"28481:58:61"},"nodeType":"YulExpressionStatement","src":"28481:58:61"},{"nodeType":"YulAssignment","src":"28548:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28560:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28571:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28556:3:61"},"nodeType":"YulFunctionCall","src":"28556:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28548:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac4d5f84147b3f629727dc611f06d39474d907909e757f1237017693d0020490__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28379:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28393:4:61","type":""}],"src":"28228:352:61"},{"body":{"nodeType":"YulBlock","src":"28846:318:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28863:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"28874:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28856:6:61"},"nodeType":"YulFunctionCall","src":"28856:25:61"},"nodeType":"YulExpressionStatement","src":"28856:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28901:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28912:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28897:3:61"},"nodeType":"YulFunctionCall","src":"28897:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"28917:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28890:6:61"},"nodeType":"YulFunctionCall","src":"28890:34:61"},"nodeType":"YulExpressionStatement","src":"28890:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28944:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28955:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28940:3:61"},"nodeType":"YulFunctionCall","src":"28940:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"28960:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28933:6:61"},"nodeType":"YulFunctionCall","src":"28933:34:61"},"nodeType":"YulExpressionStatement","src":"28933:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28987:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"28998:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28983:3:61"},"nodeType":"YulFunctionCall","src":"28983:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"29003:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28976:6:61"},"nodeType":"YulFunctionCall","src":"28976:34:61"},"nodeType":"YulExpressionStatement","src":"28976:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29030:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"29041:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29026:3:61"},"nodeType":"YulFunctionCall","src":"29026:19:61"},{"name":"value4","nodeType":"YulIdentifier","src":"29047:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29019:6:61"},"nodeType":"YulFunctionCall","src":"29019:35:61"},"nodeType":"YulExpressionStatement","src":"29019:35:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29074:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"29085:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29070:3:61"},"nodeType":"YulFunctionCall","src":"29070:19:61"},{"kind":"number","nodeType":"YulLiteral","src":"29091:3:61","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29063:6:61"},"nodeType":"YulFunctionCall","src":"29063:32:61"},"nodeType":"YulExpressionStatement","src":"29063:32:61"},{"nodeType":"YulAssignment","src":"29104:54:61","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"29130:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29142:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"29153:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29138:3:61"},"nodeType":"YulFunctionCall","src":"29138:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"29112:17:61"},"nodeType":"YulFunctionCall","src":"29112:46:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29104:4:61"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr__to_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28775:9:61","type":""},{"name":"value5","nodeType":"YulTypedName","src":"28786:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"28794:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"28802:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"28810:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"28818:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"28826:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28837:4:61","type":""}],"src":"28585:579:61"},{"body":{"nodeType":"YulBlock","src":"29225:65:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29242:1:61","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"29245:3:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29235:6:61"},"nodeType":"YulFunctionCall","src":"29235:14:61"},"nodeType":"YulExpressionStatement","src":"29235:14:61"},{"nodeType":"YulAssignment","src":"29258:26:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29276:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"29279:4:61","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"29266:9:61"},"nodeType":"YulFunctionCall","src":"29266:18:61"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"29258:4:61"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"29208:3:61","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"29216:4:61","type":""}],"src":"29169:121:61"},{"body":{"nodeType":"YulBlock","src":"29376:464:61","statements":[{"body":{"nodeType":"YulBlock","src":"29409:425:61","statements":[{"nodeType":"YulVariableDeclaration","src":"29423:11:61","value":{"kind":"number","nodeType":"YulLiteral","src":"29433:1:61","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29427:2:61","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"29454:2:61"},{"name":"array","nodeType":"YulIdentifier","src":"29458:5:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29447:6:61"},"nodeType":"YulFunctionCall","src":"29447:17:61"},"nodeType":"YulExpressionStatement","src":"29447:17:61"},{"nodeType":"YulVariableDeclaration","src":"29477:31:61","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"29499:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"29503:4:61","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"29489:9:61"},"nodeType":"YulFunctionCall","src":"29489:19:61"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"29481:4:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29521:57:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"29544:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29554:1:61","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"29561:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"29573:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29557:3:61"},"nodeType":"YulFunctionCall","src":"29557:19:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"29550:3:61"},"nodeType":"YulFunctionCall","src":"29550:27:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29540:3:61"},"nodeType":"YulFunctionCall","src":"29540:38:61"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"29525:11:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"29615:23:61","statements":[{"nodeType":"YulAssignment","src":"29617:19:61","value":{"name":"data","nodeType":"YulIdentifier","src":"29632:4:61"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"29617:11:61"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"29597:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"29609:4:61","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"29594:2:61"},"nodeType":"YulFunctionCall","src":"29594:20:61"},"nodeType":"YulIf","src":"29591:47:61"},{"nodeType":"YulVariableDeclaration","src":"29651:41:61","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"29665:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29675:1:61","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"29682:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"29687:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29678:3:61"},"nodeType":"YulFunctionCall","src":"29678:12:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"29671:3:61"},"nodeType":"YulFunctionCall","src":"29671:20:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29661:3:61"},"nodeType":"YulFunctionCall","src":"29661:31:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"29655:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29705:24:61","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"29718:11:61"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"29709:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"29803:21:61","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"29812:5:61"},{"name":"_1","nodeType":"YulIdentifier","src":"29819:2:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"29805:6:61"},"nodeType":"YulFunctionCall","src":"29805:17:61"},"nodeType":"YulExpressionStatement","src":"29805:17:61"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"29753:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"29760:2:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"29750:2:61"},"nodeType":"YulFunctionCall","src":"29750:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"29764:26:61","statements":[{"nodeType":"YulAssignment","src":"29766:22:61","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"29779:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"29786:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29775:3:61"},"nodeType":"YulFunctionCall","src":"29775:13:61"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"29766:5:61"}]}]},"pre":{"nodeType":"YulBlock","src":"29746:3:61","statements":[]},"src":"29742:82:61"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"29392:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"29397:2:61","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"29389:2:61"},"nodeType":"YulFunctionCall","src":"29389:11:61"},"nodeType":"YulIf","src":"29386:448:61"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"29348:5:61","type":""},{"name":"len","nodeType":"YulTypedName","src":"29355:3:61","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"29360:10:61","type":""}],"src":"29295:545:61"},{"body":{"nodeType":"YulBlock","src":"29930:141:61","statements":[{"nodeType":"YulAssignment","src":"29940:125:61","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"29955:4:61"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29973:1:61","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"29976:3:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29969:3:61"},"nodeType":"YulFunctionCall","src":"29969:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"29982:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"29965:3:61"},"nodeType":"YulFunctionCall","src":"29965:84:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"29961:3:61"},"nodeType":"YulFunctionCall","src":"29961:89:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29951:3:61"},"nodeType":"YulFunctionCall","src":"29951:100:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30057:1:61","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"30060:3:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"30053:3:61"},"nodeType":"YulFunctionCall","src":"30053:11:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"29948:2:61"},"nodeType":"YulFunctionCall","src":"29948:117:61"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"29940:4:61"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"29907:4:61","type":""},{"name":"len","nodeType":"YulTypedName","src":"29913:3:61","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"29921:4:61","type":""}],"src":"29845:226:61"},{"body":{"nodeType":"YulBlock","src":"30172:1375:61","statements":[{"nodeType":"YulVariableDeclaration","src":"30182:24:61","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"30202:3:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30196:5:61"},"nodeType":"YulFunctionCall","src":"30196:10:61"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"30186:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"30249:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"30251:16:61"},"nodeType":"YulFunctionCall","src":"30251:18:61"},"nodeType":"YulExpressionStatement","src":"30251:18:61"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"30221:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"30229:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"30218:2:61"},"nodeType":"YulFunctionCall","src":"30218:30:61"},"nodeType":"YulIf","src":"30215:56:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"30324:4:61"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"30362:4:61"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"30356:5:61"},"nodeType":"YulFunctionCall","src":"30356:11:61"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"30330:25:61"},"nodeType":"YulFunctionCall","src":"30330:38:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"30370:6:61"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"30280:43:61"},"nodeType":"YulFunctionCall","src":"30280:97:61"},"nodeType":"YulExpressionStatement","src":"30280:97:61"},{"nodeType":"YulVariableDeclaration","src":"30386:18:61","value":{"kind":"number","nodeType":"YulLiteral","src":"30403:1:61","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"30390:9:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"30413:23:61","value":{"kind":"number","nodeType":"YulLiteral","src":"30432:4:61","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"30417:11:61","type":""}]},{"nodeType":"YulAssignment","src":"30445:24:61","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"30458:11:61"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"30445:9:61"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"30515:775:61","statements":[{"nodeType":"YulVariableDeclaration","src":"30529:94:61","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"30548:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"30556:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"30544:3:61"},"nodeType":"YulFunctionCall","src":"30544:79:61"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"30533:7:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"30636:49:61","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"30680:4:61"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"30650:29:61"},"nodeType":"YulFunctionCall","src":"30650:35:61"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"30640:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"30698:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"30707:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"30702:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"30785:172:61","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"30810:6:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"30828:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"30833:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30824:3:61"},"nodeType":"YulFunctionCall","src":"30824:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30818:5:61"},"nodeType":"YulFunctionCall","src":"30818:26:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"30803:6:61"},"nodeType":"YulFunctionCall","src":"30803:42:61"},"nodeType":"YulExpressionStatement","src":"30803:42:61"},{"nodeType":"YulAssignment","src":"30862:24:61","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"30876:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"30884:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30872:3:61"},"nodeType":"YulFunctionCall","src":"30872:14:61"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"30862:6:61"}]},{"nodeType":"YulAssignment","src":"30903:40:61","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"30920:9:61"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"30931:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30916:3:61"},"nodeType":"YulFunctionCall","src":"30916:27:61"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"30903:9:61"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"30732:1:61"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"30735:7:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"30729:2:61"},"nodeType":"YulFunctionCall","src":"30729:14:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"30744:28:61","statements":[{"nodeType":"YulAssignment","src":"30746:24:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"30755:1:61"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"30758:11:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30751:3:61"},"nodeType":"YulFunctionCall","src":"30751:19:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"30746:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"30725:3:61","statements":[]},"src":"30721:236:61"},{"body":{"nodeType":"YulBlock","src":"31005:226:61","statements":[{"nodeType":"YulVariableDeclaration","src":"31023:43:61","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"31050:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"31055:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31046:3:61"},"nodeType":"YulFunctionCall","src":"31046:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31040:5:61"},"nodeType":"YulFunctionCall","src":"31040:26:61"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"31027:9:61","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"31090:6:61"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"31102:9:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31129:1:61","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"31132:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31125:3:61"},"nodeType":"YulFunctionCall","src":"31125:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"31141:3:61","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31121:3:61"},"nodeType":"YulFunctionCall","src":"31121:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"31147:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"31117:3:61"},"nodeType":"YulFunctionCall","src":"31117:97:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"31113:3:61"},"nodeType":"YulFunctionCall","src":"31113:102:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31098:3:61"},"nodeType":"YulFunctionCall","src":"31098:118:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"31083:6:61"},"nodeType":"YulFunctionCall","src":"31083:134:61"},"nodeType":"YulExpressionStatement","src":"31083:134:61"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"30976:7:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"30985:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"30973:2:61"},"nodeType":"YulFunctionCall","src":"30973:19:61"},"nodeType":"YulIf","src":"30970:261:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"31251:4:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31265:1:61","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"31268:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31261:3:61"},"nodeType":"YulFunctionCall","src":"31261:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"31277:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31257:3:61"},"nodeType":"YulFunctionCall","src":"31257:22:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"31244:6:61"},"nodeType":"YulFunctionCall","src":"31244:36:61"},"nodeType":"YulExpressionStatement","src":"31244:36:61"}]},"nodeType":"YulCase","src":"30508:782:61","value":{"kind":"number","nodeType":"YulLiteral","src":"30513:1:61","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"31307:234:61","statements":[{"nodeType":"YulVariableDeclaration","src":"31321:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"31334:1:61","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"31325:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"31370:67:61","statements":[{"nodeType":"YulAssignment","src":"31388:35:61","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"31407:3:61"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"31412:9:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31403:3:61"},"nodeType":"YulFunctionCall","src":"31403:19:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31397:5:61"},"nodeType":"YulFunctionCall","src":"31397:26:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"31388:5:61"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"31351:6:61"},"nodeType":"YulIf","src":"31348:89:61"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"31457:4:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"31516:5:61"},{"name":"newLen","nodeType":"YulIdentifier","src":"31523:6:61"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"31463:52:61"},"nodeType":"YulFunctionCall","src":"31463:67:61"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"31450:6:61"},"nodeType":"YulFunctionCall","src":"31450:81:61"},"nodeType":"YulExpressionStatement","src":"31450:81:61"}]},"nodeType":"YulCase","src":"31299:242:61","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"30488:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"30496:2:61","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"30485:2:61"},"nodeType":"YulFunctionCall","src":"30485:14:61"},"nodeType":"YulSwitch","src":"30478:1063:61"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"30157:4:61","type":""},{"name":"src","nodeType":"YulTypedName","src":"30163:3:61","type":""}],"src":"30076:1471:61"},{"body":{"nodeType":"YulBlock","src":"31863:491:61","statements":[{"nodeType":"YulVariableDeclaration","src":"31873:13:61","value":{"kind":"number","nodeType":"YulLiteral","src":"31883:3:61","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"31877:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31902:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"31913:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31895:6:61"},"nodeType":"YulFunctionCall","src":"31895:25:61"},"nodeType":"YulExpressionStatement","src":"31895:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31940:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"31951:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31936:3:61"},"nodeType":"YulFunctionCall","src":"31936:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"31956:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31929:6:61"},"nodeType":"YulFunctionCall","src":"31929:34:61"},"nodeType":"YulExpressionStatement","src":"31929:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31983:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"31994:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31979:3:61"},"nodeType":"YulFunctionCall","src":"31979:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"31999:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31972:6:61"},"nodeType":"YulFunctionCall","src":"31972:34:61"},"nodeType":"YulExpressionStatement","src":"31972:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32026:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32037:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32022:3:61"},"nodeType":"YulFunctionCall","src":"32022:18:61"},{"name":"value3","nodeType":"YulIdentifier","src":"32042:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32015:6:61"},"nodeType":"YulFunctionCall","src":"32015:34:61"},"nodeType":"YulExpressionStatement","src":"32015:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32069:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32080:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32065:3:61"},"nodeType":"YulFunctionCall","src":"32065:19:61"},{"name":"value4","nodeType":"YulIdentifier","src":"32086:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32058:6:61"},"nodeType":"YulFunctionCall","src":"32058:35:61"},"nodeType":"YulExpressionStatement","src":"32058:35:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32113:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32124:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32109:3:61"},"nodeType":"YulFunctionCall","src":"32109:19:61"},{"name":"_1","nodeType":"YulIdentifier","src":"32130:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32102:6:61"},"nodeType":"YulFunctionCall","src":"32102:31:61"},"nodeType":"YulExpressionStatement","src":"32102:31:61"},{"nodeType":"YulAssignment","src":"32142:53:61","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"32168:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32180:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"32191:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32176:3:61"},"nodeType":"YulFunctionCall","src":"32176:18:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"32150:17:61"},"nodeType":"YulFunctionCall","src":"32150:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32142:4:61"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32215:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32226:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32211:3:61"},"nodeType":"YulFunctionCall","src":"32211:19:61"},{"arguments":[{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"32246:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"32239:6:61"},"nodeType":"YulFunctionCall","src":"32239:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"32232:6:61"},"nodeType":"YulFunctionCall","src":"32232:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32204:6:61"},"nodeType":"YulFunctionCall","src":"32204:51:61"},"nodeType":"YulExpressionStatement","src":"32204:51:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32275:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32286:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32271:3:61"},"nodeType":"YulFunctionCall","src":"32271:19:61"},{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"32296:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"32304:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32292:3:61"},"nodeType":"YulFunctionCall","src":"32292:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32264:6:61"},"nodeType":"YulFunctionCall","src":"32264:84:61"},"nodeType":"YulExpressionStatement","src":"32264:84:61"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_bool_t_address__to_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_bool_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31776:9:61","type":""},{"name":"value7","nodeType":"YulTypedName","src":"31787:6:61","type":""},{"name":"value6","nodeType":"YulTypedName","src":"31795:6:61","type":""},{"name":"value5","nodeType":"YulTypedName","src":"31803:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"31811:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"31819:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"31827:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31835:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31843:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31854:4:61","type":""}],"src":"31552:802:61"},{"body":{"nodeType":"YulBlock","src":"32478:145:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32495:3:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32508:2:61","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"32512:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32504:3:61"},"nodeType":"YulFunctionCall","src":"32504:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"32521:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32500:3:61"},"nodeType":"YulFunctionCall","src":"32500:88:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32488:6:61"},"nodeType":"YulFunctionCall","src":"32488:101:61"},"nodeType":"YulExpressionStatement","src":"32488:101:61"},{"nodeType":"YulAssignment","src":"32598:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32609:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"32614:2:61","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32605:3:61"},"nodeType":"YulFunctionCall","src":"32605:12:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"32598:3:61"}]}]},"name":"abi_encode_tuple_packed_t_address__to_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"32454:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32459:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"32470:3:61","type":""}],"src":"32359:264:61"},{"body":{"nodeType":"YulBlock","src":"32848:248:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32865:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32876:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32858:6:61"},"nodeType":"YulFunctionCall","src":"32858:21:61"},"nodeType":"YulExpressionStatement","src":"32858:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32899:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32910:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32895:3:61"},"nodeType":"YulFunctionCall","src":"32895:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"32915:2:61","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32888:6:61"},"nodeType":"YulFunctionCall","src":"32888:30:61"},"nodeType":"YulExpressionStatement","src":"32888:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32938:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"32949:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32934:3:61"},"nodeType":"YulFunctionCall","src":"32934:18:61"},{"hexValue":"4368756753706c6173684465706c6f796d656e7450726f706f736564","kind":"string","nodeType":"YulLiteral","src":"32954:30:61","type":"","value":"ChugSplashDeploymentProposed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32927:6:61"},"nodeType":"YulFunctionCall","src":"32927:58:61"},"nodeType":"YulExpressionStatement","src":"32927:58:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33005:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33016:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33001:3:61"},"nodeType":"YulFunctionCall","src":"33001:20:61"},{"kind":"number","nodeType":"YulLiteral","src":"33023:3:61","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32994:6:61"},"nodeType":"YulFunctionCall","src":"32994:33:61"},"nodeType":"YulExpressionStatement","src":"32994:33:61"},{"nodeType":"YulAssignment","src":"33036:54:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"33062:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33074:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33085:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33070:3:61"},"nodeType":"YulFunctionCall","src":"33070:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"33044:17:61"},"nodeType":"YulFunctionCall","src":"33044:46:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33036:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_210633fb5d2065404c8ca8ad14cbb7338593f94b74fe8fe406f9055331373ee5_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32817:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32828:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32839:4:61","type":""}],"src":"32628:468:61"},{"body":{"nodeType":"YulBlock","src":"33321:231:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33338:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33349:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33331:6:61"},"nodeType":"YulFunctionCall","src":"33331:21:61"},"nodeType":"YulExpressionStatement","src":"33331:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33372:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33383:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33368:3:61"},"nodeType":"YulFunctionCall","src":"33368:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"33388:2:61","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33361:6:61"},"nodeType":"YulFunctionCall","src":"33361:30:61"},"nodeType":"YulExpressionStatement","src":"33361:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33411:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33422:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33407:3:61"},"nodeType":"YulFunctionCall","src":"33407:18:61"},{"hexValue":"50726f706f736572536574","kind":"string","nodeType":"YulLiteral","src":"33427:13:61","type":"","value":"ProposerSet"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33400:6:61"},"nodeType":"YulFunctionCall","src":"33400:41:61"},"nodeType":"YulExpressionStatement","src":"33400:41:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33461:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33472:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33457:3:61"},"nodeType":"YulFunctionCall","src":"33457:20:61"},{"kind":"number","nodeType":"YulLiteral","src":"33479:3:61","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33450:6:61"},"nodeType":"YulFunctionCall","src":"33450:33:61"},"nodeType":"YulExpressionStatement","src":"33450:33:61"},{"nodeType":"YulAssignment","src":"33492:54:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"33518:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33530:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33541:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33526:3:61"},"nodeType":"YulFunctionCall","src":"33526:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"33500:17:61"},"nodeType":"YulFunctionCall","src":"33500:46:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33492:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_353d32ba4321887fff30f08be0ac2c95ae0eb97d5bb0557782a9c159993a40aa_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33290:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"33301:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33312:4:61","type":""}],"src":"33101:451:61"},{"body":{"nodeType":"YulBlock","src":"33726:214:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33743:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33754:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33736:6:61"},"nodeType":"YulFunctionCall","src":"33736:21:61"},"nodeType":"YulExpressionStatement","src":"33736:21:61"},{"nodeType":"YulVariableDeclaration","src":"33766:59:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"33798:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33810:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33821:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33806:3:61"},"nodeType":"YulFunctionCall","src":"33806:18:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"33780:17:61"},"nodeType":"YulFunctionCall","src":"33780:45:61"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"33770:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33845:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"33856:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33841:3:61"},"nodeType":"YulFunctionCall","src":"33841:18:61"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"33865:6:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"33873:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33861:3:61"},"nodeType":"YulFunctionCall","src":"33861:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33834:6:61"},"nodeType":"YulFunctionCall","src":"33834:50:61"},"nodeType":"YulExpressionStatement","src":"33834:50:61"},{"nodeType":"YulAssignment","src":"33893:41:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"33919:6:61"},{"name":"tail_1","nodeType":"YulIdentifier","src":"33927:6:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"33901:17:61"},"nodeType":"YulFunctionCall","src":"33901:33:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33893:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33687:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"33698:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"33706:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33717:4:61","type":""}],"src":"33557:383:61"},{"body":{"nodeType":"YulBlock","src":"34080:145:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"34097:3:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34110:2:61","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"34114:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"34106:3:61"},"nodeType":"YulFunctionCall","src":"34106:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"34123:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"34102:3:61"},"nodeType":"YulFunctionCall","src":"34102:88:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34090:6:61"},"nodeType":"YulFunctionCall","src":"34090:101:61"},"nodeType":"YulExpressionStatement","src":"34090:101:61"},{"nodeType":"YulAssignment","src":"34200:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"34211:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"34216:2:61","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34207:3:61"},"nodeType":"YulFunctionCall","src":"34207:12:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"34200:3:61"}]}]},"name":"abi_encode_tuple_packed_t_address_payable__to_t_address_payable__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"34056:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"34061:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"34072:3:61","type":""}],"src":"33945:280:61"},{"body":{"nodeType":"YulBlock","src":"34450:233:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34467:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34478:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34460:6:61"},"nodeType":"YulFunctionCall","src":"34460:21:61"},"nodeType":"YulExpressionStatement","src":"34460:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34501:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34512:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34497:3:61"},"nodeType":"YulFunctionCall","src":"34497:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"34517:2:61","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34490:6:61"},"nodeType":"YulFunctionCall","src":"34490:30:61"},"nodeType":"YulExpressionStatement","src":"34490:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34540:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34551:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34536:3:61"},"nodeType":"YulFunctionCall","src":"34536:18:61"},{"hexValue":"50726f78795570677261646564","kind":"string","nodeType":"YulLiteral","src":"34556:15:61","type":"","value":"ProxyUpgraded"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34529:6:61"},"nodeType":"YulFunctionCall","src":"34529:43:61"},"nodeType":"YulExpressionStatement","src":"34529:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34592:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34603:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34588:3:61"},"nodeType":"YulFunctionCall","src":"34588:20:61"},{"kind":"number","nodeType":"YulLiteral","src":"34610:3:61","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34581:6:61"},"nodeType":"YulFunctionCall","src":"34581:33:61"},"nodeType":"YulExpressionStatement","src":"34581:33:61"},{"nodeType":"YulAssignment","src":"34623:54:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34649:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34661:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34672:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34657:3:61"},"nodeType":"YulFunctionCall","src":"34657:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"34631:17:61"},"nodeType":"YulFunctionCall","src":"34631:46:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34623:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_19e3af283a96bd8d6e53f90b16be3952f026990932fb08e68e91fb43532287dd_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34419:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"34430:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34441:4:61","type":""}],"src":"34230:453:61"},{"body":{"nodeType":"YulBlock","src":"34862:228:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34879:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34890:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34872:6:61"},"nodeType":"YulFunctionCall","src":"34872:21:61"},"nodeType":"YulExpressionStatement","src":"34872:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34913:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34924:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34909:3:61"},"nodeType":"YulFunctionCall","src":"34909:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"34929:2:61","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34902:6:61"},"nodeType":"YulFunctionCall","src":"34902:30:61"},"nodeType":"YulExpressionStatement","src":"34902:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34952:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"34963:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34948:3:61"},"nodeType":"YulFunctionCall","src":"34948:18:61"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"34968:34:61","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34941:6:61"},"nodeType":"YulFunctionCall","src":"34941:62:61"},"nodeType":"YulExpressionStatement","src":"34941:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35023:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"35034:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35019:3:61"},"nodeType":"YulFunctionCall","src":"35019:18:61"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"35039:8:61","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35012:6:61"},"nodeType":"YulFunctionCall","src":"35012:36:61"},"nodeType":"YulExpressionStatement","src":"35012:36:61"},{"nodeType":"YulAssignment","src":"35057:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35069:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"35080:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35065:3:61"},"nodeType":"YulFunctionCall","src":"35065:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35057:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34839:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34853:4:61","type":""}],"src":"34688:402:61"},{"body":{"nodeType":"YulBlock","src":"35269:166:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35286:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"35297:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35279:6:61"},"nodeType":"YulFunctionCall","src":"35279:21:61"},"nodeType":"YulExpressionStatement","src":"35279:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35320:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"35331:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35316:3:61"},"nodeType":"YulFunctionCall","src":"35316:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"35336:2:61","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35309:6:61"},"nodeType":"YulFunctionCall","src":"35309:30:61"},"nodeType":"YulExpressionStatement","src":"35309:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35359:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"35370:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35355:3:61"},"nodeType":"YulFunctionCall","src":"35355:18:61"},{"hexValue":"4f776e65725769746864726577455448","kind":"string","nodeType":"YulLiteral","src":"35375:18:61","type":"","value":"OwnerWithdrewETH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35348:6:61"},"nodeType":"YulFunctionCall","src":"35348:46:61"},"nodeType":"YulExpressionStatement","src":"35348:46:61"},{"nodeType":"YulAssignment","src":"35403:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35415:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"35426:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35411:3:61"},"nodeType":"YulFunctionCall","src":"35411:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35403:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_73c3d4076184b9838feedbd8e5b052e7b81ce6eb33e5d660144042390badac81__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35246:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35260:4:61","type":""}],"src":"35095:340:61"},{"body":{"nodeType":"YulBlock","src":"35521:103:61","statements":[{"body":{"nodeType":"YulBlock","src":"35567:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35576:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"35579:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"35569:6:61"},"nodeType":"YulFunctionCall","src":"35569:12:61"},"nodeType":"YulExpressionStatement","src":"35569:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"35542:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"35551:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"35538:3:61"},"nodeType":"YulFunctionCall","src":"35538:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"35563:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"35534:3:61"},"nodeType":"YulFunctionCall","src":"35534:32:61"},"nodeType":"YulIf","src":"35531:52:61"},{"nodeType":"YulAssignment","src":"35592:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35608:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35602:5:61"},"nodeType":"YulFunctionCall","src":"35602:16:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"35592:6:61"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35487:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"35498:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"35510:6:61","type":""}],"src":"35440:184:61"},{"body":{"nodeType":"YulBlock","src":"35681:176:61","statements":[{"body":{"nodeType":"YulBlock","src":"35800:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"35802:16:61"},"nodeType":"YulFunctionCall","src":"35802:18:61"},"nodeType":"YulExpressionStatement","src":"35802:18:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"35712:1:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"35705:6:61"},"nodeType":"YulFunctionCall","src":"35705:9:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"35698:6:61"},"nodeType":"YulFunctionCall","src":"35698:17:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"35720:1:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35727:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"35795:1:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"35723:3:61"},"nodeType":"YulFunctionCall","src":"35723:74:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"35717:2:61"},"nodeType":"YulFunctionCall","src":"35717:81:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35694:3:61"},"nodeType":"YulFunctionCall","src":"35694:105:61"},"nodeType":"YulIf","src":"35691:131:61"},{"nodeType":"YulAssignment","src":"35831:20:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"35846:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"35849:1:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"35842:3:61"},"nodeType":"YulFunctionCall","src":"35842:9:61"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"35831:7:61"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"35660:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"35663:1:61","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"35669:7:61","type":""}],"src":"35629:228:61"},{"body":{"nodeType":"YulBlock","src":"36036:233:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36053:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36064:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36046:6:61"},"nodeType":"YulFunctionCall","src":"36046:21:61"},"nodeType":"YulExpressionStatement","src":"36046:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36087:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36098:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36083:3:61"},"nodeType":"YulFunctionCall","src":"36083:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"36103:2:61","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36076:6:61"},"nodeType":"YulFunctionCall","src":"36076:30:61"},"nodeType":"YulExpressionStatement","src":"36076:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36126:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36137:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36122:3:61"},"nodeType":"YulFunctionCall","src":"36122:18:61"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nodeType":"YulLiteral","src":"36142:34:61","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36115:6:61"},"nodeType":"YulFunctionCall","src":"36115:62:61"},"nodeType":"YulExpressionStatement","src":"36115:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36197:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36208:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36193:3:61"},"nodeType":"YulFunctionCall","src":"36193:18:61"},{"hexValue":"6e697469616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"36213:13:61","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36186:6:61"},"nodeType":"YulFunctionCall","src":"36186:41:61"},"nodeType":"YulExpressionStatement","src":"36186:41:61"},{"nodeType":"YulAssignment","src":"36236:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36248:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36259:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36244:3:61"},"nodeType":"YulFunctionCall","src":"36244:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36236:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36013:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36027:4:61","type":""}],"src":"35862:407:61"},{"body":{"nodeType":"YulBlock","src":"36448:182:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36465:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36476:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36458:6:61"},"nodeType":"YulFunctionCall","src":"36458:21:61"},"nodeType":"YulExpressionStatement","src":"36458:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36499:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36510:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36495:3:61"},"nodeType":"YulFunctionCall","src":"36495:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"36515:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36488:6:61"},"nodeType":"YulFunctionCall","src":"36488:30:61"},"nodeType":"YulExpressionStatement","src":"36488:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36538:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36549:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36534:3:61"},"nodeType":"YulFunctionCall","src":"36534:18:61"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"36554:34:61","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36527:6:61"},"nodeType":"YulFunctionCall","src":"36527:62:61"},"nodeType":"YulExpressionStatement","src":"36527:62:61"},{"nodeType":"YulAssignment","src":"36598:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36610:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36621:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36606:3:61"},"nodeType":"YulFunctionCall","src":"36606:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36598:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36425:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36439:4:61","type":""}],"src":"36274:356:61"},{"body":{"nodeType":"YulBlock","src":"36809:181:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36826:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36837:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36819:6:61"},"nodeType":"YulFunctionCall","src":"36819:21:61"},"nodeType":"YulExpressionStatement","src":"36819:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36860:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36871:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36856:3:61"},"nodeType":"YulFunctionCall","src":"36856:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"36876:2:61","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36849:6:61"},"nodeType":"YulFunctionCall","src":"36849:30:61"},"nodeType":"YulExpressionStatement","src":"36849:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36899:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36910:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36895:3:61"},"nodeType":"YulFunctionCall","src":"36895:18:61"},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","kind":"string","nodeType":"YulLiteral","src":"36915:33:61","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36888:6:61"},"nodeType":"YulFunctionCall","src":"36888:61:61"},"nodeType":"YulExpressionStatement","src":"36888:61:61"},{"nodeType":"YulAssignment","src":"36958:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36970:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"36981:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36966:3:61"},"nodeType":"YulFunctionCall","src":"36966:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36958:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36786:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36800:4:61","type":""}],"src":"36635:355:61"},{"body":{"nodeType":"YulBlock","src":"37169:245:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37186:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37197:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37179:6:61"},"nodeType":"YulFunctionCall","src":"37179:21:61"},"nodeType":"YulExpressionStatement","src":"37179:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37220:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37231:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37216:3:61"},"nodeType":"YulFunctionCall","src":"37216:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"37236:2:61","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37209:6:61"},"nodeType":"YulFunctionCall","src":"37209:30:61"},"nodeType":"YulExpressionStatement","src":"37209:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37259:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37270:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37255:3:61"},"nodeType":"YulFunctionCall","src":"37255:18:61"},{"hexValue":"4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d7573","kind":"string","nodeType":"YulLiteral","src":"37275:34:61","type":"","value":"Lib_MerkleTree: Total leaves mus"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37248:6:61"},"nodeType":"YulFunctionCall","src":"37248:62:61"},"nodeType":"YulExpressionStatement","src":"37248:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37330:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37341:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37326:3:61"},"nodeType":"YulFunctionCall","src":"37326:18:61"},{"hexValue":"742062652067726561746572207468616e207a65726f2e","kind":"string","nodeType":"YulLiteral","src":"37346:25:61","type":"","value":"t be greater than zero."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37319:6:61"},"nodeType":"YulFunctionCall","src":"37319:53:61"},"nodeType":"YulExpressionStatement","src":"37319:53:61"},{"nodeType":"YulAssignment","src":"37381:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37393:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37404:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37389:3:61"},"nodeType":"YulFunctionCall","src":"37389:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37381:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d69eed63d2fabed7c4c92abdce9fbd1db49fe88c5f62641219c29215d31830d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37146:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37160:4:61","type":""}],"src":"36995:419:61"},{"body":{"nodeType":"YulBlock","src":"37593:226:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37610:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37621:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37603:6:61"},"nodeType":"YulFunctionCall","src":"37603:21:61"},"nodeType":"YulExpressionStatement","src":"37603:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37644:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37655:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37640:3:61"},"nodeType":"YulFunctionCall","src":"37640:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"37660:2:61","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37633:6:61"},"nodeType":"YulFunctionCall","src":"37633:30:61"},"nodeType":"YulExpressionStatement","src":"37633:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37683:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37694:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37679:3:61"},"nodeType":"YulFunctionCall","src":"37679:18:61"},{"hexValue":"4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f75","kind":"string","nodeType":"YulLiteral","src":"37699:34:61","type":"","value":"Lib_MerkleTree: Index out of bou"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37672:6:61"},"nodeType":"YulFunctionCall","src":"37672:62:61"},"nodeType":"YulExpressionStatement","src":"37672:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37754:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37765:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37750:3:61"},"nodeType":"YulFunctionCall","src":"37750:18:61"},{"hexValue":"6e64732e","kind":"string","nodeType":"YulLiteral","src":"37770:6:61","type":"","value":"nds."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37743:6:61"},"nodeType":"YulFunctionCall","src":"37743:34:61"},"nodeType":"YulExpressionStatement","src":"37743:34:61"},{"nodeType":"YulAssignment","src":"37786:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37798:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"37809:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37794:3:61"},"nodeType":"YulFunctionCall","src":"37794:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37786:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_68cc56f10282cc58aac079fe25b2b3414f4eefd89d7c32080c5a85f381d44469__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37570:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37584:4:61","type":""}],"src":"37419:400:61"},{"body":{"nodeType":"YulBlock","src":"37998:307:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38015:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"38026:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38008:6:61"},"nodeType":"YulFunctionCall","src":"38008:21:61"},"nodeType":"YulExpressionStatement","src":"38008:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38049:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"38060:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38045:3:61"},"nodeType":"YulFunctionCall","src":"38045:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"38065:2:61","type":"","value":"77"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38038:6:61"},"nodeType":"YulFunctionCall","src":"38038:30:61"},"nodeType":"YulExpressionStatement","src":"38038:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38088:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"38099:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38084:3:61"},"nodeType":"YulFunctionCall","src":"38084:18:61"},{"hexValue":"4c69625f4d65726b6c65547265653a20546f74616c207369626c696e67732064","kind":"string","nodeType":"YulLiteral","src":"38104:34:61","type":"","value":"Lib_MerkleTree: Total siblings d"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38077:6:61"},"nodeType":"YulFunctionCall","src":"38077:62:61"},"nodeType":"YulExpressionStatement","src":"38077:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38159:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"38170:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38155:3:61"},"nodeType":"YulFunctionCall","src":"38155:18:61"},{"hexValue":"6f6573206e6f7420636f72726563746c7920636f72726573706f6e6420746f20","kind":"string","nodeType":"YulLiteral","src":"38175:34:61","type":"","value":"oes not correctly correspond to "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38148:6:61"},"nodeType":"YulFunctionCall","src":"38148:62:61"},"nodeType":"YulExpressionStatement","src":"38148:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38230:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"38241:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38226:3:61"},"nodeType":"YulFunctionCall","src":"38226:19:61"},{"hexValue":"746f74616c206c65617665732e","kind":"string","nodeType":"YulLiteral","src":"38247:15:61","type":"","value":"total leaves."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38219:6:61"},"nodeType":"YulFunctionCall","src":"38219:44:61"},"nodeType":"YulExpressionStatement","src":"38219:44:61"},{"nodeType":"YulAssignment","src":"38272:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38284:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"38295:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38280:3:61"},"nodeType":"YulFunctionCall","src":"38280:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"38272:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_cdb62154d2ff47b4d81c32398ab8daaaacc93506f1e06c4d234ee5b680c9aab8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37975:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37989:4:61","type":""}],"src":"37824:481:61"},{"body":{"nodeType":"YulBlock","src":"38457:100:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"38474:3:61"},{"name":"value0","nodeType":"YulIdentifier","src":"38479:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38467:6:61"},"nodeType":"YulFunctionCall","src":"38467:19:61"},"nodeType":"YulExpressionStatement","src":"38467:19:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"38506:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"38511:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38502:3:61"},"nodeType":"YulFunctionCall","src":"38502:12:61"},{"name":"value1","nodeType":"YulIdentifier","src":"38516:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38495:6:61"},"nodeType":"YulFunctionCall","src":"38495:28:61"},"nodeType":"YulExpressionStatement","src":"38495:28:61"},{"nodeType":"YulAssignment","src":"38532:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"38543:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"38548:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38539:3:61"},"nodeType":"YulFunctionCall","src":"38539:12:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"38532:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"38425:3:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"38430:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"38438:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"38449:3:61","type":""}],"src":"38310:247:61"},{"body":{"nodeType":"YulBlock","src":"38608:228:61","statements":[{"body":{"nodeType":"YulBlock","src":"38639:168:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38660:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38663:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38653:6:61"},"nodeType":"YulFunctionCall","src":"38653:88:61"},"nodeType":"YulExpressionStatement","src":"38653:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38761:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"38764:4:61","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38754:6:61"},"nodeType":"YulFunctionCall","src":"38754:15:61"},"nodeType":"YulExpressionStatement","src":"38754:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38789:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38792:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38782:6:61"},"nodeType":"YulFunctionCall","src":"38782:15:61"},"nodeType":"YulExpressionStatement","src":"38782:15:61"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"38628:1:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"38621:6:61"},"nodeType":"YulFunctionCall","src":"38621:9:61"},"nodeType":"YulIf","src":"38618:189:61"},{"nodeType":"YulAssignment","src":"38816:14:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"38825:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"38828:1:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"38821:3:61"},"nodeType":"YulFunctionCall","src":"38821:9:61"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"38816:1:61"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"38593:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"38596:1:61","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"38602:1:61","type":""}],"src":"38562:274:61"},{"body":{"nodeType":"YulBlock","src":"38904:365:61","statements":[{"body":{"nodeType":"YulBlock","src":"38953:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38962:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38965:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38955:6:61"},"nodeType":"YulFunctionCall","src":"38955:12:61"},"nodeType":"YulExpressionStatement","src":"38955:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"38932:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"38940:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38928:3:61"},"nodeType":"YulFunctionCall","src":"38928:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"38947:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"38924:3:61"},"nodeType":"YulFunctionCall","src":"38924:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"38917:6:61"},"nodeType":"YulFunctionCall","src":"38917:35:61"},"nodeType":"YulIf","src":"38914:55:61"},{"nodeType":"YulVariableDeclaration","src":"38978:23:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"38994:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38988:5:61"},"nodeType":"YulFunctionCall","src":"38988:13:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"38982:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"39010:63:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"39069:2:61"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"39041:27:61"},"nodeType":"YulFunctionCall","src":"39041:31:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"39025:15:61"},"nodeType":"YulFunctionCall","src":"39025:48:61"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"39014:7:61","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"39089:7:61"},{"name":"_1","nodeType":"YulIdentifier","src":"39098:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39082:6:61"},"nodeType":"YulFunctionCall","src":"39082:19:61"},"nodeType":"YulExpressionStatement","src":"39082:19:61"},{"body":{"nodeType":"YulBlock","src":"39149:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39158:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"39161:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"39151:6:61"},"nodeType":"YulFunctionCall","src":"39151:12:61"},"nodeType":"YulExpressionStatement","src":"39151:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"39124:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"39132:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39120:3:61"},"nodeType":"YulFunctionCall","src":"39120:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"39137:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39116:3:61"},"nodeType":"YulFunctionCall","src":"39116:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"39144:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"39113:2:61"},"nodeType":"YulFunctionCall","src":"39113:35:61"},"nodeType":"YulIf","src":"39110:55:61"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"39200:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"39208:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39196:3:61"},"nodeType":"YulFunctionCall","src":"39196:17:61"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"39219:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"39228:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39215:3:61"},"nodeType":"YulFunctionCall","src":"39215:18:61"},{"name":"_1","nodeType":"YulIdentifier","src":"39235:2:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"39174:21:61"},"nodeType":"YulFunctionCall","src":"39174:64:61"},"nodeType":"YulExpressionStatement","src":"39174:64:61"},{"nodeType":"YulAssignment","src":"39247:16:61","value":{"name":"array_1","nodeType":"YulIdentifier","src":"39256:7:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"39247:5:61"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"38878:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"38886:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"38894:5:61","type":""}],"src":"38841:428:61"},{"body":{"nodeType":"YulBlock","src":"39381:289:61","statements":[{"body":{"nodeType":"YulBlock","src":"39427:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39436:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"39439:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"39429:6:61"},"nodeType":"YulFunctionCall","src":"39429:12:61"},"nodeType":"YulExpressionStatement","src":"39429:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"39402:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"39411:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"39398:3:61"},"nodeType":"YulFunctionCall","src":"39398:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"39423:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"39394:3:61"},"nodeType":"YulFunctionCall","src":"39394:32:61"},"nodeType":"YulIf","src":"39391:52:61"},{"nodeType":"YulAssignment","src":"39452:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39468:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39462:5:61"},"nodeType":"YulFunctionCall","src":"39462:16:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"39452:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"39487:39:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39511:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"39522:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39507:3:61"},"nodeType":"YulFunctionCall","src":"39507:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39501:5:61"},"nodeType":"YulFunctionCall","src":"39501:25:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"39491:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"39569:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39578:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"39581:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"39571:6:61"},"nodeType":"YulFunctionCall","src":"39571:12:61"},"nodeType":"YulExpressionStatement","src":"39571:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"39541:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"39549:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"39538:2:61"},"nodeType":"YulFunctionCall","src":"39538:30:61"},"nodeType":"YulIf","src":"39535:50:61"},{"nodeType":"YulAssignment","src":"39594:70:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39636:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"39647:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39632:3:61"},"nodeType":"YulFunctionCall","src":"39632:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"39656:7:61"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"39604:27:61"},"nodeType":"YulFunctionCall","src":"39604:60:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"39594:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"39339:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"39350:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"39362:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"39370:6:61","type":""}],"src":"39274:396:61"},{"body":{"nodeType":"YulBlock","src":"39764:170:61","statements":[{"body":{"nodeType":"YulBlock","src":"39810:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39819:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"39822:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"39812:6:61"},"nodeType":"YulFunctionCall","src":"39812:12:61"},"nodeType":"YulExpressionStatement","src":"39812:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"39785:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"39794:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"39781:3:61"},"nodeType":"YulFunctionCall","src":"39781:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"39806:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"39777:3:61"},"nodeType":"YulFunctionCall","src":"39777:32:61"},"nodeType":"YulIf","src":"39774:52:61"},{"nodeType":"YulVariableDeclaration","src":"39835:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39854:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39848:5:61"},"nodeType":"YulFunctionCall","src":"39848:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"39839:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"39898:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"39873:24:61"},"nodeType":"YulFunctionCall","src":"39873:31:61"},"nodeType":"YulExpressionStatement","src":"39873:31:61"},{"nodeType":"YulAssignment","src":"39913:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"39923:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"39913:6:61"}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"39730:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"39741:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"39753:6:61","type":""}],"src":"39675:259:61"},{"body":{"nodeType":"YulBlock","src":"40078:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"40088:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40108:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40102:5:61"},"nodeType":"YulFunctionCall","src":"40102:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"40092:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40150:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"40158:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40146:3:61"},"nodeType":"YulFunctionCall","src":"40146:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"40165:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"40170:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"40124:21:61"},"nodeType":"YulFunctionCall","src":"40124:53:61"},"nodeType":"YulExpressionStatement","src":"40124:53:61"},{"nodeType":"YulAssignment","src":"40186:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"40197:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"40202:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40193:3:61"},"nodeType":"YulFunctionCall","src":"40193:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"40186:3:61"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"40054:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"40059:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"40070:3:61","type":""}],"src":"39939:276:61"},{"body":{"nodeType":"YulBlock","src":"40369:142:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40386:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"40397:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40379:6:61"},"nodeType":"YulFunctionCall","src":"40379:21:61"},"nodeType":"YulExpressionStatement","src":"40379:21:61"},{"nodeType":"YulAssignment","src":"40409:53:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40435:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40447:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"40458:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40443:3:61"},"nodeType":"YulFunctionCall","src":"40443:18:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"40417:17:61"},"nodeType":"YulFunctionCall","src":"40417:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"40409:4:61"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40482:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"40493:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40478:3:61"},"nodeType":"YulFunctionCall","src":"40478:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"40498:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40471:6:61"},"nodeType":"YulFunctionCall","src":"40471:34:61"},"nodeType":"YulExpressionStatement","src":"40471:34:61"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"40330:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"40341:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"40349:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"40360:4:61","type":""}],"src":"40220:291:61"},{"body":{"nodeType":"YulBlock","src":"40690:175:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40707:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"40718:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40700:6:61"},"nodeType":"YulFunctionCall","src":"40700:21:61"},"nodeType":"YulExpressionStatement","src":"40700:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40741:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"40752:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40737:3:61"},"nodeType":"YulFunctionCall","src":"40737:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"40757:2:61","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40730:6:61"},"nodeType":"YulFunctionCall","src":"40730:30:61"},"nodeType":"YulExpressionStatement","src":"40730:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40780:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"40791:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40776:3:61"},"nodeType":"YulFunctionCall","src":"40776:18:61"},{"hexValue":"436f6e74726163744465706c6f796d656e74536b6970706564","kind":"string","nodeType":"YulLiteral","src":"40796:27:61","type":"","value":"ContractDeploymentSkipped"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40769:6:61"},"nodeType":"YulFunctionCall","src":"40769:55:61"},"nodeType":"YulExpressionStatement","src":"40769:55:61"},{"nodeType":"YulAssignment","src":"40833:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40845:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"40856:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40841:3:61"},"nodeType":"YulFunctionCall","src":"40841:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"40833:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_783c9b0a62816cbd0221d408937b53d36e126872b05695b8f346aff9b3316ad0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"40667:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"40681:4:61","type":""}],"src":"40516:349:61"},{"body":{"nodeType":"YulBlock","src":"41053:185:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41070:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"41081:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41063:6:61"},"nodeType":"YulFunctionCall","src":"41063:25:61"},"nodeType":"YulExpressionStatement","src":"41063:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41108:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"41119:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41104:3:61"},"nodeType":"YulFunctionCall","src":"41104:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"41124:2:61","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41097:6:61"},"nodeType":"YulFunctionCall","src":"41097:30:61"},"nodeType":"YulExpressionStatement","src":"41097:30:61"},{"nodeType":"YulAssignment","src":"41136:53:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"41162:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41174:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"41185:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41170:3:61"},"nodeType":"YulFunctionCall","src":"41170:18:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"41144:17:61"},"nodeType":"YulFunctionCall","src":"41144:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41136:4:61"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41209:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"41220:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41205:3:61"},"nodeType":"YulFunctionCall","src":"41205:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"41225:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41198:6:61"},"nodeType":"YulFunctionCall","src":"41198:34:61"},"nodeType":"YulExpressionStatement","src":"41198:34:61"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_rational_0_by_1__to_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41006:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"41017:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"41025:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41033:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41044:4:61","type":""}],"src":"40870:368:61"},{"body":{"nodeType":"YulBlock","src":"41473:197:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"41490:3:61"},{"hexValue":"4661696c656420746f206465706c6f793a20","kind":"string","nodeType":"YulLiteral","src":"41495:20:61","type":"","value":"Failed to deploy: "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41483:6:61"},"nodeType":"YulFunctionCall","src":"41483:33:61"},"nodeType":"YulExpressionStatement","src":"41483:33:61"},{"nodeType":"YulVariableDeclaration","src":"41525:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41545:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41539:5:61"},"nodeType":"YulFunctionCall","src":"41539:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"41529:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41587:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"41595:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41583:3:61"},"nodeType":"YulFunctionCall","src":"41583:17:61"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"41606:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"41611:2:61","type":"","value":"18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41602:3:61"},"nodeType":"YulFunctionCall","src":"41602:12:61"},{"name":"length","nodeType":"YulIdentifier","src":"41616:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"41561:21:61"},"nodeType":"YulFunctionCall","src":"41561:62:61"},"nodeType":"YulExpressionStatement","src":"41561:62:61"},{"nodeType":"YulAssignment","src":"41632:32:61","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"41647:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"41652:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41643:3:61"},"nodeType":"YulFunctionCall","src":"41643:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"41661:2:61","type":"","value":"18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41639:3:61"},"nodeType":"YulFunctionCall","src":"41639:25:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"41632:3:61"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_915f5799182efa058318d2c10bfb6fdf3b367d7d83d124821938a981793f77b4_t_string_memory_ptr__to_t_bytes18_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"41449:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41454:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"41465:3:61","type":""}],"src":"41243:427:61"},{"body":{"nodeType":"YulBlock","src":"41796:99:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41813:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"41824:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41806:6:61"},"nodeType":"YulFunctionCall","src":"41806:21:61"},"nodeType":"YulExpressionStatement","src":"41806:21:61"},{"nodeType":"YulAssignment","src":"41836:53:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41862:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41874:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"41885:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41870:3:61"},"nodeType":"YulFunctionCall","src":"41870:18:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"41844:17:61"},"nodeType":"YulFunctionCall","src":"41844:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41836:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41765:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41776:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41787:4:61","type":""}],"src":"41675:220:61"},{"body":{"nodeType":"YulBlock","src":"42077:185:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42094:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42105:2:61","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42087:6:61"},"nodeType":"YulFunctionCall","src":"42087:21:61"},"nodeType":"YulExpressionStatement","src":"42087:21:61"},{"nodeType":"YulAssignment","src":"42117:53:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"42143:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42155:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42166:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42151:3:61"},"nodeType":"YulFunctionCall","src":"42151:18:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"42125:17:61"},"nodeType":"YulFunctionCall","src":"42125:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"42117:4:61"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42190:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42201:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42186:3:61"},"nodeType":"YulFunctionCall","src":"42186:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"42206:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42179:6:61"},"nodeType":"YulFunctionCall","src":"42179:34:61"},"nodeType":"YulExpressionStatement","src":"42179:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42233:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42244:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42229:3:61"},"nodeType":"YulFunctionCall","src":"42229:18:61"},{"name":"value2","nodeType":"YulIdentifier","src":"42249:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42222:6:61"},"nodeType":"YulFunctionCall","src":"42222:34:61"},"nodeType":"YulExpressionStatement","src":"42222:34:61"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"42030:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"42041:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"42049:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"42057:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"42068:4:61","type":""}],"src":"41900:362:61"},{"body":{"nodeType":"YulBlock","src":"42441:166:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42458:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42469:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42451:6:61"},"nodeType":"YulFunctionCall","src":"42451:21:61"},"nodeType":"YulExpressionStatement","src":"42451:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42492:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42503:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42488:3:61"},"nodeType":"YulFunctionCall","src":"42488:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"42508:2:61","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42481:6:61"},"nodeType":"YulFunctionCall","src":"42481:30:61"},"nodeType":"YulExpressionStatement","src":"42481:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42531:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42542:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42527:3:61"},"nodeType":"YulFunctionCall","src":"42527:18:61"},{"hexValue":"436f6e74726163744465706c6f796564","kind":"string","nodeType":"YulLiteral","src":"42547:18:61","type":"","value":"ContractDeployed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42520:6:61"},"nodeType":"YulFunctionCall","src":"42520:46:61"},"nodeType":"YulExpressionStatement","src":"42520:46:61"},{"nodeType":"YulAssignment","src":"42575:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42587:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"42598:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42583:3:61"},"nodeType":"YulFunctionCall","src":"42583:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"42575:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_fe6b160f10156dea0639bec90696772c640b9706a47f5b8c52ea1abe5858b34d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"42418:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"42432:4:61","type":""}],"src":"42267:340:61"},{"body":{"nodeType":"YulBlock","src":"42731:63:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"42748:3:61"},{"name":"value0","nodeType":"YulIdentifier","src":"42753:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42741:6:61"},"nodeType":"YulFunctionCall","src":"42741:19:61"},"nodeType":"YulExpressionStatement","src":"42741:19:61"},{"nodeType":"YulAssignment","src":"42769:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"42780:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"42785:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42776:3:61"},"nodeType":"YulFunctionCall","src":"42776:12:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"42769:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"42707:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"42712:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"42723:3:61","type":""}],"src":"42612:182:61"},{"body":{"nodeType":"YulBlock","src":"43019:236:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43036:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43047:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43029:6:61"},"nodeType":"YulFunctionCall","src":"43029:21:61"},"nodeType":"YulExpressionStatement","src":"43029:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43070:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43081:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43066:3:61"},"nodeType":"YulFunctionCall","src":"43066:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"43086:2:61","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43059:6:61"},"nodeType":"YulFunctionCall","src":"43059:30:61"},"nodeType":"YulExpressionStatement","src":"43059:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43109:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43120:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43105:3:61"},"nodeType":"YulFunctionCall","src":"43105:18:61"},{"hexValue":"4465706c6f796d656e744661696c6564","kind":"string","nodeType":"YulLiteral","src":"43125:18:61","type":"","value":"DeploymentFailed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43098:6:61"},"nodeType":"YulFunctionCall","src":"43098:46:61"},"nodeType":"YulExpressionStatement","src":"43098:46:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43164:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43175:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43160:3:61"},"nodeType":"YulFunctionCall","src":"43160:20:61"},{"kind":"number","nodeType":"YulLiteral","src":"43182:3:61","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43153:6:61"},"nodeType":"YulFunctionCall","src":"43153:33:61"},"nodeType":"YulExpressionStatement","src":"43153:33:61"},{"nodeType":"YulAssignment","src":"43195:54:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"43221:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43233:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43244:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43229:3:61"},"nodeType":"YulFunctionCall","src":"43229:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"43203:17:61"},"nodeType":"YulFunctionCall","src":"43203:46:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"43195:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_9afe9cdeb756775707de62673d317969c43f7e6c567311540f9d56f8170bd124_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"42988:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"42999:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"43010:4:61","type":""}],"src":"42799:456:61"},{"body":{"nodeType":"YulBlock","src":"43434:179:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43451:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43462:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43444:6:61"},"nodeType":"YulFunctionCall","src":"43444:21:61"},"nodeType":"YulExpressionStatement","src":"43444:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43485:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43496:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43481:3:61"},"nodeType":"YulFunctionCall","src":"43481:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"43501:2:61","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43474:6:61"},"nodeType":"YulFunctionCall","src":"43474:30:61"},"nodeType":"YulExpressionStatement","src":"43474:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43524:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43535:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43520:3:61"},"nodeType":"YulFunctionCall","src":"43520:18:61"},{"hexValue":"4368756753706c6173684465706c6f796d656e74436f6d706c65746564","kind":"string","nodeType":"YulLiteral","src":"43540:31:61","type":"","value":"ChugSplashDeploymentCompleted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43513:6:61"},"nodeType":"YulFunctionCall","src":"43513:59:61"},"nodeType":"YulExpressionStatement","src":"43513:59:61"},{"nodeType":"YulAssignment","src":"43581:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43593:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43604:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43589:3:61"},"nodeType":"YulFunctionCall","src":"43589:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"43581:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_37cae0cf32405bbfdf4f8fb6e6b008eb2386d070de2c97bafbe38290df158ef1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"43411:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"43425:4:61","type":""}],"src":"43260:353:61"},{"body":{"nodeType":"YulBlock","src":"43740:424:61","statements":[{"body":{"nodeType":"YulBlock","src":"43786:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43795:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43798:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43788:6:61"},"nodeType":"YulFunctionCall","src":"43788:12:61"},"nodeType":"YulExpressionStatement","src":"43788:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"43761:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"43770:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"43757:3:61"},"nodeType":"YulFunctionCall","src":"43757:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"43782:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"43753:3:61"},"nodeType":"YulFunctionCall","src":"43753:32:61"},"nodeType":"YulIf","src":"43750:52:61"},{"nodeType":"YulAssignment","src":"43811:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43827:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43821:5:61"},"nodeType":"YulFunctionCall","src":"43821:16:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"43811:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"43846:38:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43869:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"43880:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43865:3:61"},"nodeType":"YulFunctionCall","src":"43865:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43859:5:61"},"nodeType":"YulFunctionCall","src":"43859:25:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"43850:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"43932:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43941:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43944:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43934:6:61"},"nodeType":"YulFunctionCall","src":"43934:12:61"},"nodeType":"YulExpressionStatement","src":"43934:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43906:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43917:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"43924:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"43913:3:61"},"nodeType":"YulFunctionCall","src":"43913:16:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"43903:2:61"},"nodeType":"YulFunctionCall","src":"43903:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"43896:6:61"},"nodeType":"YulFunctionCall","src":"43896:35:61"},"nodeType":"YulIf","src":"43893:55:61"},{"nodeType":"YulAssignment","src":"43957:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"43967:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"43957:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"43981:39:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44005:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44016:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44001:3:61"},"nodeType":"YulFunctionCall","src":"44001:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"43995:5:61"},"nodeType":"YulFunctionCall","src":"43995:25:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"43985:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"44063:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"44072:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"44075:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"44065:6:61"},"nodeType":"YulFunctionCall","src":"44065:12:61"},"nodeType":"YulExpressionStatement","src":"44065:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"44035:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"44043:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"44032:2:61"},"nodeType":"YulFunctionCall","src":"44032:30:61"},"nodeType":"YulIf","src":"44029:50:61"},{"nodeType":"YulAssignment","src":"44088:70:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44130:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"44141:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44126:3:61"},"nodeType":"YulFunctionCall","src":"44126:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"44150:7:61"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"44098:27:61"},"nodeType":"YulFunctionCall","src":"44098:60:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"44088:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint8t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"43690:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"43701:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"43713:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"43721:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"43729:6:61","type":""}],"src":"43618:546:61"},{"body":{"nodeType":"YulBlock","src":"44384:290:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44401:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"44416:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"44424:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"44412:3:61"},"nodeType":"YulFunctionCall","src":"44412:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44394:6:61"},"nodeType":"YulFunctionCall","src":"44394:74:61"},"nodeType":"YulExpressionStatement","src":"44394:74:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44488:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44499:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44484:3:61"},"nodeType":"YulFunctionCall","src":"44484:18:61"},{"name":"value1","nodeType":"YulIdentifier","src":"44504:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44477:6:61"},"nodeType":"YulFunctionCall","src":"44477:34:61"},"nodeType":"YulExpressionStatement","src":"44477:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44531:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44542:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44527:3:61"},"nodeType":"YulFunctionCall","src":"44527:18:61"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"44551:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"44559:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"44547:3:61"},"nodeType":"YulFunctionCall","src":"44547:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44520:6:61"},"nodeType":"YulFunctionCall","src":"44520:45:61"},"nodeType":"YulExpressionStatement","src":"44520:45:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44585:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44596:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44581:3:61"},"nodeType":"YulFunctionCall","src":"44581:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"44601:3:61","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44574:6:61"},"nodeType":"YulFunctionCall","src":"44574:31:61"},"nodeType":"YulExpressionStatement","src":"44574:31:61"},{"nodeType":"YulAssignment","src":"44614:54:61","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"44640:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44652:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44663:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44648:3:61"},"nodeType":"YulFunctionCall","src":"44648:19:61"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"44622:17:61"},"nodeType":"YulFunctionCall","src":"44622:46:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"44614:4:61"}]}]},"name":"abi_encode_tuple_t_address_payable_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_address_payable_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"44329:9:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"44340:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"44348:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"44356:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"44364:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"44375:4:61","type":""}],"src":"44169:505:61"},{"body":{"nodeType":"YulBlock","src":"44853:165:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44870:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44881:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44863:6:61"},"nodeType":"YulFunctionCall","src":"44863:21:61"},"nodeType":"YulExpressionStatement","src":"44863:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44904:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44915:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44900:3:61"},"nodeType":"YulFunctionCall","src":"44900:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"44920:2:61","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44893:6:61"},"nodeType":"YulFunctionCall","src":"44893:30:61"},"nodeType":"YulExpressionStatement","src":"44893:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44943:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"44954:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44939:3:61"},"nodeType":"YulFunctionCall","src":"44939:18:61"},{"hexValue":"53657450726f787953746f72616765","kind":"string","nodeType":"YulLiteral","src":"44959:17:61","type":"","value":"SetProxyStorage"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44932:6:61"},"nodeType":"YulFunctionCall","src":"44932:45:61"},"nodeType":"YulExpressionStatement","src":"44932:45:61"},{"nodeType":"YulAssignment","src":"44986:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44998:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"45009:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44994:3:61"},"nodeType":"YulFunctionCall","src":"44994:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"44986:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_51965c048adbd7512d3135672fe4d6ef1deafe15d18a4cb3d048efd493c6f238__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"44830:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"44844:4:61","type":""}],"src":"44679:339:61"},{"body":{"nodeType":"YulBlock","src":"45197:238:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"45214:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"45225:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45207:6:61"},"nodeType":"YulFunctionCall","src":"45207:21:61"},"nodeType":"YulExpressionStatement","src":"45207:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"45248:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"45259:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45244:3:61"},"nodeType":"YulFunctionCall","src":"45244:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"45264:2:61","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45237:6:61"},"nodeType":"YulFunctionCall","src":"45237:30:61"},"nodeType":"YulExpressionStatement","src":"45237:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"45287:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"45298:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45283:3:61"},"nodeType":"YulFunctionCall","src":"45283:18:61"},{"hexValue":"4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d707574652063","kind":"string","nodeType":"YulLiteral","src":"45303:34:61","type":"","value":"Lib_MerkleTree: Cannot compute c"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45276:6:61"},"nodeType":"YulFunctionCall","src":"45276:62:61"},"nodeType":"YulExpressionStatement","src":"45276:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"45358:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"45369:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45354:3:61"},"nodeType":"YulFunctionCall","src":"45354:18:61"},{"hexValue":"65696c286c6f675f3229206f6620302e","kind":"string","nodeType":"YulLiteral","src":"45374:18:61","type":"","value":"eil(log_2) of 0."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45347:6:61"},"nodeType":"YulFunctionCall","src":"45347:46:61"},"nodeType":"YulExpressionStatement","src":"45347:46:61"},{"nodeType":"YulAssignment","src":"45402:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"45414:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"45425:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45410:3:61"},"nodeType":"YulFunctionCall","src":"45410:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"45402:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_724579e27bab982d017a7d360dc241a64fbf444ff61c16f8f4c18899a52189a5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"45174:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"45188:4:61","type":""}],"src":"45023:412:61"},{"body":{"nodeType":"YulBlock","src":"45570:201:61","statements":[{"body":{"nodeType":"YulBlock","src":"45608:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45617:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"45620:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"45610:6:61"},"nodeType":"YulFunctionCall","src":"45610:12:61"},"nodeType":"YulExpressionStatement","src":"45610:12:61"}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"45586:10:61"},{"name":"endIndex","nodeType":"YulIdentifier","src":"45598:8:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"45583:2:61"},"nodeType":"YulFunctionCall","src":"45583:24:61"},"nodeType":"YulIf","src":"45580:44:61"},{"body":{"nodeType":"YulBlock","src":"45657:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45666:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"45669:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"45659:6:61"},"nodeType":"YulFunctionCall","src":"45659:12:61"},"nodeType":"YulExpressionStatement","src":"45659:12:61"}]},"condition":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"45639:8:61"},{"name":"length","nodeType":"YulIdentifier","src":"45649:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"45636:2:61"},"nodeType":"YulFunctionCall","src":"45636:20:61"},"nodeType":"YulIf","src":"45633:40:61"},{"nodeType":"YulAssignment","src":"45682:36:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"45699:6:61"},{"name":"startIndex","nodeType":"YulIdentifier","src":"45707:10:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"45695:3:61"},"nodeType":"YulFunctionCall","src":"45695:23:61"},"variableNames":[{"name":"offsetOut","nodeType":"YulIdentifier","src":"45682:9:61"}]},{"nodeType":"YulAssignment","src":"45727:38:61","value":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"45744:8:61"},{"name":"startIndex","nodeType":"YulIdentifier","src":"45754:10:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"45740:3:61"},"nodeType":"YulFunctionCall","src":"45740:25:61"},"variableNames":[{"name":"lengthOut","nodeType":"YulIdentifier","src":"45727:9:61"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"45504:6:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"45512:6:61","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"45520:10:61","type":""},{"name":"endIndex","nodeType":"YulTypedName","src":"45532:8:61","type":""}],"returnVariables":[{"name":"offsetOut","nodeType":"YulTypedName","src":"45545:9:61","type":""},{"name":"lengthOut","nodeType":"YulTypedName","src":"45556:9:61","type":""}],"src":"45440:331:61"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_stringliteral_e81a5d0c54f32743c4dddc3623afc15dd89832f300e26f5cb271ae1f3f967da4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"ETHDeposited\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_contract$_IGasPriceCalculator_$9833__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_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_bool(value, pos)\n    {\n        mstore(pos, iszero(iszero(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_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_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\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_DeploymentStatus(value, pos)\n    {\n        if iszero(lt(value, 7)) { panic_error_0x21() }\n        mstore(pos, value)\n    }\n    function abi_encode_array_bool_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, iszero(iszero(mload(srcPtr))))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_address(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function copy_memory_to_memory(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        if gt(i, length) { 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(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_struct$_DeploymentState_$5519_memory_ptr__to_t_struct$_DeploymentState_$5519_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        abi_encode_enum_DeploymentStatus(mload(value0), add(headStart, 32))\n        let memberValue0 := mload(add(value0, 32))\n        let _1 := 0x0160\n        mstore(add(headStart, 64), _1)\n        let tail_1 := abi_encode_array_bool_dyn(memberValue0, add(headStart, 384))\n        mstore(add(headStart, 96), mload(add(value0, 64)))\n        mstore(add(headStart, 128), mload(add(value0, 96)))\n        mstore(add(headStart, 160), mload(add(value0, 128)))\n        mstore(add(headStart, 192), mload(add(value0, 160)))\n        mstore(add(headStart, 224), mload(add(value0, 192)))\n        let _2 := mload(add(value0, 224))\n        let _3 := 256\n        mstore(add(headStart, _3), _2)\n        let memberValue0_1 := mload(add(value0, _3))\n        let _4 := 288\n        abi_encode_address(memberValue0_1, add(headStart, _4))\n        let memberValue0_2 := mload(add(value0, _4))\n        let _5 := 320\n        abi_encode_bool(memberValue0_2, add(headStart, _5))\n        let memberValue0_3 := mload(add(value0, _5))\n        mstore(add(headStart, _1), add(sub(tail_1, headStart), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        tail := abi_encode_string(memberValue0_3, tail_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_5672() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xa0)\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_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_bytes(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_bytes(_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 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_t_bytes_memory_ptr__to_t_bytes_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_encode_tuple_t_struct$_Version_$5567_memory_ptr__to_t_struct$_Version_$5567_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\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_address_payable(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_tuple_t_address_payablet_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let value_1 := calldataload(add(headStart, 64))\n        validator_revert_address(value_1)\n        value2 := value_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$_IChugSplashRegistry_$9774__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function array_allocation_size_array_struct_ChugSplashTarget_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_struct_ChugSplashTarget_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_struct_ChugSplashTarget_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            let _3 := 0xffffffffffffffff\n            if gt(innerOffset, _3)\n            {\n                let _4 := 0\n                revert(_4, _4)\n            }\n            let _5 := add(offset, innerOffset)\n            let _6 := 0xa0\n            if slt(add(sub(end, _5), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), _6)\n            {\n                let _7 := 0\n                revert(_7, _7)\n            }\n            let value := allocate_memory_5672()\n            let offset_1 := calldataload(add(_5, _2))\n            if gt(offset_1, _3)\n            {\n                let _8 := 0\n                revert(_8, _8)\n            }\n            mstore(value, abi_decode_bytes(add(add(_5, offset_1), _2), end))\n            let _9 := 64\n            let offset_2 := calldataload(add(_5, _9))\n            if gt(offset_2, _3)\n            {\n                let _10 := 0\n                revert(_10, _10)\n            }\n            mstore(add(value, _2), abi_decode_bytes(add(add(_5, offset_2), _2), end))\n            let _11 := 96\n            let value_1 := calldataload(add(_5, _11))\n            validator_revert_address(value_1)\n            mstore(add(value, _9), value_1)\n            let _12 := 128\n            let value_2 := calldataload(add(_5, _12))\n            validator_revert_address(value_2)\n            mstore(add(value, _11), value_2)\n            mstore(add(value, _12), calldataload(add(_5, _6)))\n            mstore(dst, value)\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_array_bytes32_dyn_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_struct_ChugSplashTarget_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let _3 := 5\n        let srcEnd := add(add(offset, shl(_3, _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 _4 := 0\n                revert(_4, _4)\n            }\n            let _5 := add(offset, innerOffset)\n            if iszero(slt(add(_5, 63), end))\n            {\n                let _6 := 0\n                revert(_6, _6)\n            }\n            let _7 := calldataload(add(_5, _2))\n            let _8 := 64\n            let dst_2 := allocate_memory(array_allocation_size_array_struct_ChugSplashTarget_dyn(_7))\n            let dst_3 := dst_2\n            mstore(dst_2, _7)\n            dst_2 := add(dst_2, _2)\n            let srcEnd_1 := add(add(_5, shl(_3, _7)), _8)\n            if gt(srcEnd_1, end)\n            {\n                let _9 := 0\n                revert(_9, _9)\n            }\n            let src_1 := add(_5, _8)\n            for { } lt(src_1, srcEnd_1) { src_1 := add(src_1, _2) }\n            {\n                mstore(dst_2, calldataload(src_1))\n                dst_2 := add(dst_2, _2)\n            }\n            mstore(dst, dst_3)\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_struct_RawChugSplashAction_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_struct_ChugSplashTarget_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            let _3 := 0xffffffffffffffff\n            if gt(innerOffset, _3)\n            {\n                let _4 := 0\n                revert(_4, _4)\n            }\n            let _5 := add(offset, innerOffset)\n            let _6 := 0xa0\n            if slt(add(sub(end, _5), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), _6)\n            {\n                let _7 := 0\n                revert(_7, _7)\n            }\n            let value := allocate_memory_5672()\n            let value_1 := calldataload(add(_5, _2))\n            if iszero(lt(value_1, 2))\n            {\n                let _8 := 0\n                revert(_8, _8)\n            }\n            mstore(value, value_1)\n            let _9 := 64\n            let offset_1 := calldataload(add(_5, _9))\n            if gt(offset_1, _3)\n            {\n                let _10 := 0\n                revert(_10, _10)\n            }\n            mstore(add(value, _2), abi_decode_bytes(add(add(_5, offset_1), _2), end))\n            let _11 := 96\n            mstore(add(value, _9), abi_decode_address_payable(add(_5, _11)))\n            let _12 := 128\n            mstore(add(value, _11), calldataload(add(_5, _12)))\n            let offset_2 := calldataload(add(_5, _6))\n            if gt(offset_2, _3)\n            {\n                let _13 := 0\n                revert(_13, _13)\n            }\n            mstore(add(value, _12), abi_decode_bytes(add(add(_5, offset_2), _2), end))\n            mstore(dst, value)\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_uint256_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_struct_ChugSplashTarget_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            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { 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_struct_ChugSplashTarget_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_array_bytes32_dyn_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_struct_RawChugSplashAction_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_uint256_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_array_bytes32_dyn_dyn(add(headStart, offset_4), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_struct$_ChugSplashTarget_$5542_memory_ptr_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\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        value0 := abi_decode_array_struct_ChugSplashTarget_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_array_bytes32_dyn_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_struct$_RawChugSplashAction_$5531_memory_ptr_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr(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_array_struct_RawChugSplashAction_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_uint256_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_array_bytes32_dyn_dyn(add(headStart, offset_2), dataEnd)\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_bytes32t_bytes32t_uint256t_uint256t_uint256t_string_memory_ptrt_bool(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n        let offset := calldataload(add(headStart, 160))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value5 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let value := calldataload(add(headStart, 192))\n        validator_revert_bool(value)\n        value6 := 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_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_encode_tuple_t_contract$_IAccessControl_$2184__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\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_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_decode_tuple_t_address_payablet_bytes32t_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := mload(add(headStart, 32))\n        let value_1 := mload(add(headStart, 64))\n        validator_revert_bool(value_1)\n        value2 := value_1\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_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\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 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        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_9299e799f5bd86a57c95da8888edb7cf8f9f8a911599ee655149753055d95bb1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"ChugSplashDeploymentClaimed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_f4b98612bedea35f7ef2cfe8183cc6b7180cbf10fd45b4a40f65020ea3ec0f85__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), \"ChugSplashDeploymentCancelled\")\n        tail := add(headStart, 96)\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_address_payable_t_address__to_t_address_payable_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_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(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_ff4b76aa5cc79574b79360f66d4e31f7f076ae34764f584e1cf284635346f8d8__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), \"ProxyExported\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\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_21ccd5c9189f012814a6c30a1907ed2c4bdaf8bbbe09fb39de37dd5c076f3c93__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"ExecutorPaymentClaimed\")\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_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_t_bytes32__to_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 160)\n        let tail_1 := abi_encode_string(value0, add(headStart, 160))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_string(value1, tail_1)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), and(value3, _1))\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\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_1f3ac1230ff26091a94b75ff8e5fad20b9e84d2feff74d722872eb39af02fd34__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), \"ProxiesInitiated\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_bool__to_t_bool__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, shl(248, iszero(iszero(value0))))\n        end := add(pos, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_94fb0879ec971022842631c04539b6c897165004ebe353344a6e045c17defe29_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 64)\n        mstore(add(headStart, 64), 23)\n        mstore(add(headStart, 96), \"ToggledManagedProposals\")\n        mstore(add(headStart, 0x20), 128)\n        tail := abi_encode_string(value0, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_address_payable_t_enum$_ChugSplashActionType_$5545_t_bytes32_t_bytes_memory_ptr__to_t_string_memory_ptr_t_address_payable_t_uint8_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 160)\n        let tail_1 := abi_encode_string(value0, add(headStart, 160))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        if iszero(lt(value2, 2)) { panic_error_0x21() }\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_string(value4, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_ac4d5f84147b3f629727dc611f06d39474d907909e757f1237017693d0020490__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"ChugSplashDeploymentApproved\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr__to_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), 192)\n        tail := abi_encode_string(value5, add(headStart, 192))\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(_1, array)\n            let data := keccak256(_1, 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 := srcOffset_1\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_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_bool_t_address__to_t_bytes32_t_bytes32_t_uint256_t_uint256_t_uint256_t_string_memory_ptr_t_bool_t_address__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 256\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), _1)\n        tail := abi_encode_string(value5, add(headStart, _1))\n        mstore(add(headStart, 192), iszero(iszero(value6)))\n        mstore(add(headStart, 224), and(value7, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_packed_t_address__to_t_address__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        end := add(pos, 20)\n    }\n    function abi_encode_tuple_t_stringliteral_210633fb5d2065404c8ca8ad14cbb7338593f94b74fe8fe406f9055331373ee5_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 64)\n        mstore(add(headStart, 64), 28)\n        mstore(add(headStart, 96), \"ChugSplashDeploymentProposed\")\n        mstore(add(headStart, 0x20), 128)\n        tail := abi_encode_string(value0, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_353d32ba4321887fff30f08be0ac2c95ae0eb97d5bb0557782a9c159993a40aa_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 64)\n        mstore(add(headStart, 64), 11)\n        mstore(add(headStart, 96), \"ProposerSet\")\n        mstore(add(headStart, 0x20), 128)\n        tail := abi_encode_string(value0, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_string(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_string(value1, tail_1)\n    }\n    function abi_encode_tuple_packed_t_address_payable__to_t_address_payable__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        end := add(pos, 20)\n    }\n    function abi_encode_tuple_t_stringliteral_19e3af283a96bd8d6e53f90b16be3952f026990932fb08e68e91fb43532287dd_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 64)\n        mstore(add(headStart, 64), 13)\n        mstore(add(headStart, 96), \"ProxyUpgraded\")\n        mstore(add(headStart, 0x20), 128)\n        tail := abi_encode_string(value0, add(headStart, 128))\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_73c3d4076184b9838feedbd8e5b052e7b81ce6eb33e5d660144042390badac81__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), \"OwnerWithdrewETH\")\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 checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\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_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_9d69eed63d2fabed7c4c92abdce9fbd1db49fe88c5f62641219c29215d31830d__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), \"Lib_MerkleTree: Total leaves mus\")\n        mstore(add(headStart, 96), \"t be greater than zero.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_68cc56f10282cc58aac079fe25b2b3414f4eefd89d7c32080c5a85f381d44469__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), \"Lib_MerkleTree: Index out of bou\")\n        mstore(add(headStart, 96), \"nds.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_cdb62154d2ff47b4d81c32398ab8daaaacc93506f1e06c4d234ee5b680c9aab8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 77)\n        mstore(add(headStart, 64), \"Lib_MerkleTree: Total siblings d\")\n        mstore(add(headStart, 96), \"oes not correctly correspond to \")\n        mstore(add(headStart, 128), \"total leaves.\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, value0)\n        mstore(add(pos, 32), value1)\n        end := add(pos, 64)\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_decode_bytes_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_bytes(_1))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n        array := array_1\n    }\n    function abi_decode_tuple_t_bytes32t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := mload(headStart)\n        let offset := mload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\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_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(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__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), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_783c9b0a62816cbd0221d408937b53d36e126872b05695b8f346aff9b3316ad0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ContractDeploymentSkipped\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_rational_0_by_1__to_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 96)\n        tail := abi_encode_string(value1, add(headStart, 96))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_915f5799182efa058318d2c10bfb6fdf3b367d7d83d124821938a981793f77b4_t_string_memory_ptr__to_t_bytes18_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, \"Failed to deploy: \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 18), length)\n        end := add(add(pos, length), 18)\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_encode_tuple_t_string_memory_ptr_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 96)\n        tail := abi_encode_string(value0, add(headStart, 96))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_fe6b160f10156dea0639bec90696772c640b9706a47f5b8c52ea1abe5858b34d__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), \"ContractDeployed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, value0)\n        end := add(pos, 32)\n    }\n    function abi_encode_tuple_t_stringliteral_9afe9cdeb756775707de62673d317969c43f7e6c567311540f9d56f8170bd124_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 64)\n        mstore(add(headStart, 64), 16)\n        mstore(add(headStart, 96), \"DeploymentFailed\")\n        mstore(add(headStart, 0x20), 128)\n        tail := abi_encode_string(value0, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_37cae0cf32405bbfdf4f8fb6e6b008eb2386d070de2c97bafbe38290df158ef1__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), \"ChugSplashDeploymentCompleted\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_bytes32t_uint8t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := mload(headStart)\n        let value := mload(add(headStart, 32))\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value1 := value\n        let offset := mload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value2 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_address_payable_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_address_payable_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_51965c048adbd7512d3135672fe4d6ef1deafe15d18a4cb3d048efd493c6f238__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"SetProxyStorage\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_724579e27bab982d017a7d360dc241a64fbf444ff61c16f8f4c18899a52189a5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 48)\n        mstore(add(headStart, 64), \"Lib_MerkleTree: Cannot compute c\")\n        mstore(add(headStart, 96), \"eil(log_2) of 0.\")\n        tail := add(headStart, 128)\n    }\n    function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n    {\n        if gt(startIndex, endIndex) { revert(0, 0) }\n        if gt(endIndex, length) { revert(0, 0) }\n        offsetOut := add(offset, startIndex)\n        lengthOut := sub(endIndex, startIndex)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"1095":[{"length":32,"start":1367},{"length":32,"start":14373},{"length":32,"start":19837}],"5686":[{"length":32,"start":837},{"length":32,"start":1704},{"length":32,"start":4186},{"length":32,"start":4771},{"length":32,"start":5526},{"length":32,"start":6100},{"length":32,"start":7375},{"length":32,"start":8183},{"length":32,"start":8788},{"length":32,"start":9126},{"length":32,"start":10972},{"length":32,"start":11610},{"length":32,"start":11947},{"length":32,"start":12668},{"length":32,"start":13220},{"length":32,"start":14028},{"length":32,"start":17002},{"length":32,"start":17627},{"length":32,"start":17981},{"length":32,"start":18313},{"length":32,"start":18553},{"length":32,"start":19222}],"5689":[{"length":32,"start":1967},{"length":32,"start":16521},{"length":32,"start":17112}],"5693":[{"length":32,"start":958},{"length":32,"start":14125},{"length":32,"start":15927}],"5697":[{"length":32,"start":2272},{"length":32,"start":3462},{"length":32,"start":5170},{"length":32,"start":6209},{"length":32,"start":7139}],"5700":[{"length":32,"start":1103},{"length":32,"start":4452},{"length":32,"start":4551},{"length":32,"start":10603},{"length":32,"start":17734},{"length":32,"start":17833}],"5703":[{"length":32,"start":2430},{"length":32,"start":3881},{"length":32,"start":4396}],"5706":[{"length":32,"start":2188},{"length":32,"start":16129}],"5709":[{"length":32,"start":1588},{"length":32,"start":16204}],"8992":[{"length":32,"start":4925}],"8995":[{"length":32,"start":4963}],"8998":[{"length":32,"start":5001}]},"linkReferences":{},"object":"6080604052600436106102bf5760003560e01c80639a20ba781161016e578063ef9fe8e4116100cb578063f2fde38b1161007f578063fc7b9c1811610064578063fc7b9c1814610937578063fd95a3be1461094c578063fff81d4c1461096c57600080fd5b8063f2fde38b14610902578063f40c7c4c1461092257600080fd5b8063f220aca9116100b0578063f220aca91461087a578063f23d6142146108ae578063f2a7208d146108ce57600080fd5b8063ef9fe8e41461084a578063f03171111461086457600080fd5b8063bd8bcd8911610122578063dfba66f011610107578063dfba66f0146107fd578063e8ea2d0814610813578063e9ed9b641461082a57600080fd5b8063bd8bcd89146107d1578063c6eb84e5146107e757600080fd5b8063a53a1adf11610153578063a53a1adf1461075d578063a7882f931461077d578063bae4b95f1461079d57600080fd5b80639a20ba7814610728578063a47d08011461073d57600080fd5b8063715018a61161021c57806379e6f49a116101d05780638da5cb5b116101b55780638da5cb5b146106ca57806391e219ae146106e85780639449a44f1461070857600080fd5b806379e6f49a146106765780637b1039991461069657600080fd5b806374ec29a01161020157806374ec29a0146106025780637521120f1461062257806375cd65e11461065657600080fd5b8063715018a6146105c057806373b4a738146105d557600080fd5b80634731d48c1161027357806354fd4d501161025857806354fd4d5014610503578063572b6c051461053a57806361f5499f1461058757600080fd5b80634731d48c146104d95780635229c975146104ee57600080fd5b80632e0a6960116102a45780632e0a69601461043d578063374040171461047f578063439fab91146104ac57600080fd5b80630523a04c146103ac57806318177497146103fd57600080fd5b366103a757346102cd6109a0565b6001600160a01b03167f6c703791f399558807424f489ccd811c72b4ff0b74af547264fad7c646776df060405160405180910390a360405163ea0a523760e01b815260206004820152600c60248201527f4554484465706f7369746564000000000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b15801561039157600080fd5b505af11580156103a5573d6000803e3d6000fd5b005b600080fd5b3480156103b857600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561040957600080fd5b5061042d610418366004614e9e565b60ca6020526000908152604090205460ff1681565b60405190151581526020016103f4565b34801561044957600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016103f4565b34801561048b57600080fd5b5061049f61049a366004614ebb565b6109af565b6040516103f49190614fac565b3480156104b857600080fd5b506104cc6104c736600461517b565b610bc6565b6040516103f491906151b8565b3480156104e557600080fd5b506103a5610d84565b3480156104fa57600080fd5b506103a56110c1565b34801561050f57600080fd5b5061051861130c565b60408051825181526020808401519082015291810151908201526060016103f4565b34801561054657600080fd5b5061042d610555366004614e9e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b34801561059357600080fd5b506103e06105a2366004614ebb565b600090815260cb60205260409020600801546001600160a01b031690565b3480156105cc57600080fd5b506103a56113b0565b3480156105e157600080fd5b506104716105f0366004614e9e565b60c96020526000908152604090205481565b34801561060e57600080fd5b5061042d61061d366004614e9e565b6113c4565b34801561062e57600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b34801561066257600080fd5b506103a56106713660046151db565b6114de565b34801561068257600080fd5b506103a5610691366004614ebb565b61183f565b3480156106a257600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d657600080fd5b506033546001600160a01b03166103e0565b3480156106f457600080fd5b506103a56107033660046155b0565b611d38565b34801561071457600080fd5b506103a5610723366004615682565b611d5e565b34801561073457600080fd5b506103a56122e5565b34801561074957600080fd5b506103a56107583660046156e6565b61240d565b34801561076957600080fd5b506103a5610778366004614ebb565b61292b565b34801561078957600080fd5b506103a561079836600461577c565b612b13565b3480156107a957600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b3480156107dd57600080fd5b5061047160cf5481565b3480156107f357600080fd5b5061047160ce5481565b34801561080957600080fd5b5061047160cd5481565b34801561081f57600080fd5b5060cd54151561042d565b34801561083657600080fd5b506103a56108453660046157fe565b612e33565b34801561085657600080fd5b5060d05461042d9060ff1681565b34801561087057600080fd5b5061047160cc5481565b34801561088657600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b3480156108ba57600080fd5b506103a56108c9366004615682565b612f1b565b3480156108da57600080fd5b506103e07f000000000000000000000000000000000000000000000000000000000000000081565b34801561090e57600080fd5b506103a561091d366004614e9e565b6134a7565b34801561092e57600080fd5b506103a5613537565b34801561094357600080fd5b50610471613703565b34801561095857600080fd5b506103a561096736600461577c565b613715565b34801561097857600080fd5b506104717f000000000000000000000000000000000000000000000000000000000000000081565b60006109aa613821565b905090565b604080516101608101825260008082526060602083018190529282018190528282018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820152610140810191909152600082815260cb602052604090819020815161016081019092528054829060ff166006811115610a3957610a39614ed4565b6006811115610a4a57610a4a614ed4565b815260200160018201805480602002602001604051908101604052809291908181526020018280548015610abd57602002820191906000526020600020906000905b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411610a8c5790505b505050918352505060028201546020820152600382015460408201526004820154606082015260058201546080820152600682015460a0820152600782015460c082015260088201546001600160a01b03811660e0830152600160a01b900460ff16151561010082015260098201805461012090920191610b3d90615837565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6990615837565b8015610bb65780601f10610b8b57610100808354040283529160200191610bb6565b820191906000526020600020905b815481529060010190602001808311610b9957829003601f168201915b5050505050815250509050919050565b600054606090610100900460ff1615808015610be95750600054600160ff909116105b80610c035750303b158015610c03575060005460ff166001145b610c7a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6000805460ff191660011790558015610cba57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600080600085806020019051810190610cd39190615884565b60cc82905560d0805460ff191682151517905591945092509050610cf5613883565b610cfd613908565b610d068361398d565b6040518060200160405280600081525094505050508015610d7e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391d148547f9e982efbc2164e40fcd14da9a0408a971e4224cb50a113d83b1c90cd8c1434dd610ddc6109a0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610e3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6291906158bc565b610e98576040517f6696fa8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd54610ed1576040517f5f0825a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd54600090815260cb602052604090206008810154600160a01b900460ff16610f27576040517f0bb3291200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008160070154610f579190615908565b4211610f8f576040517f7ea3c87d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426007820155610f9d6109a0565b6008820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055610fdf6109a0565b6001600160a01b031660cd547fdef501073bf641ebc9528324e0366c9737f17823fa009980717ec55df3b05f2060405160405180910390a360405163ea0a523760e01b815260206004820152601b60248201527f4368756753706c6173684465706c6f796d656e74436c61696d6564000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b5050505050565b6110c96139f7565b60cd54611102576040517f5f0825a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd54600090815260cb602052604090206008810154600160a01b900460ff16801561115d5750427f0000000000000000000000000000000000000000000000000000000000000000826007015461115a9190615908565b10155b156111fd577f000000000000000000000000000000000000000000000000000000000000000060c9600061118f6109a0565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111be9190615908565b925050819055507f000000000000000000000000000000000000000000000000000000000000000060ce60008282546111f79190615908565b90915550505b60cd80546000909155815460ff191660051782556112196109a0565b6001600160a01b0316817f6e376540abc69ea2aba618baf9970a40a410209797848ac685c0d5e321536c96846006015460405161125891815260200190565b60405180910390a360405163ea0a523760e01b815260206004820152601d60248201527f4368756753706c6173684465706c6f796d656e7443616e63656c6c656400000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a5237906064015b600060405180830381600087803b1580156112f057600080fd5b505af1158015611304573d6000803e3d6000fd5b505050505050565b61133060405180606001604052806000815260200160008152602001600081525090565b60405180606001604052807f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815250905090565b6113b86139f7565b6113c2600061398d565b565b60d05460009060ff16801561149d57506040517f91d148540000000000000000000000000000000000000000000000000000000081527f1036d397acc4220751130e8fcc4ce6cb991a324073d229f09e751ac8624f19c060048201526001600160a01b0383811660248301527f000000000000000000000000000000000000000000000000000000000000000016906391d1485490604401602060405180830381865afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149d91906158bc565b806114c057506001600160a01b038216600090815260ca602052604090205460ff165b806114d857506033546001600160a01b038381169116145b92915050565b6114e66139f7565b826001600160a01b03163b60000361152a576040517f58796ea800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd5415611564576040517f318cf47900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f72c6838f000000000000000000000000000000000000000000000000000000008152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906372c6838f90602401602060405180830381865afa1580156115e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116099190615920565b90506001600160a01b03811661164b576040517f6602115a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0383811682528491908616907f6828050ff1390d9c84304db69d7669bdc13a1df9715cedf6fe1eeb0bec3843ea9060200160405180910390a36040516001600160a01b03858116602483015283811660448301526000919083169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7eff275e0000000000000000000000000000000000000000000000000000000017905251611716919061593d565b600060405180830381855af49150503d8060008114611751576040519150601f19603f3d011682016040523d82523d6000602084013e611756565b606091505b5050905080611791576040517fed9af69100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405163ea0a523760e01b815260206004820152600d60248201527f50726f78794578706f727465640000000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b15801561182057600080fd5b505af1158015611834573d6000803e3d6000fd5b505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391d148547f9e982efbc2164e40fcd14da9a0408a971e4224cb50a113d83b1c90cd8c1434dd6118976109a0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d91906158bc565b611953576040517f6696fa8100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060000361198d576040517f5e85ae7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c9600061199a6109a0565b6001600160a01b03166001600160a01b031681526020019081526020016000205410156119f3576040517fc70453ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4760cf5482611a029190615908565b1115611a3a576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c96000611a476109a0565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611a769190615959565b925050819055508060ce6000828254611a8f9190615959565b90915550611a9d90506109a0565b6001600160a01b03167fba98915499c19898a23f510deeaa915637d1b5d537df51dc105d01b8e69be7e28260c96000611ad46109a0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054604051611b0c929190918252602082015260400190565b60405180910390a26000611b1e6109a0565b604080516000815260208101918290526001600160a01b0392909216918491611b47919061593d565b60006040518083038185875af1925050503d8060008114611b84576040519150601f19603f3d011682016040523d82523d6000602084013e611b89565b606091505b5050905080611bc4576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cf546040805160008082526020820192839052926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929091611c0f9161593d565b60006040518083038185875af1925050503d8060008114611c4c576040519150601f19603f3d011682016040523d82523d6000602084013e611c51565b606091505b5050905080611c8c576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405163ea0a523760e01b815260206004820152601660248201527f4578656375746f725061796d656e74436c61696d65640000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b158015611d1b57600080fd5b505af1158015611d2f573d6000803e3d6000fd5b50505050505050565b611d428585611d5e565b825115611d5457611d5483838361240d565b6110ba8585612f1b565b611d66613a70565b60005a60cd54600090815260cb60205260409020600881015491925090611d9690600160a01b900460ff16613ac9565b8060050154816006015414611dd7576040517f415522d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002815460ff166006811115611def57611def614ed4565b14611e26576040517fcb6f6ae400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835160028201548114611e65576040517f4f838f7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a081018252606080825260208201819052600092820183905281018290526080810191909152606060005b838110156121c557878181518110611eaf57611eaf615970565b60200260200101519250868181518110611ecb57611ecb615970565b602002602001015191507f1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed693836080015103611f32576040517fc0e6f38000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f89856004015484600001518560200151866040015187606001518860800151604051602001611f6795949392919061599f565b6040516020818303038152906040528051906020012083858960020154613bbd565b611fbf576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808301516040517f72c6838f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916372c6838f9161202e9160040190815260200190565b602060405180830381865afa15801561204b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206f9190615920565b90506001600160a01b0381166120b1576040517f6602115a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408085015190516001600160a01b03918216602482015260009183169060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f479aa9270000000000000000000000000000000000000000000000000000000017905251612135919061593d565b600060405180830381855af49150503d8060008114612170576040519150601f19603f3d011682016040523d82523d6000602084013e612175565b606091505b50509050806121b0576040517f3fb523ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505080806121bd906159e9565b915050611e95565b50835460ff191660031784556121d96109a0565b6001600160a01b031660cd547fbfea78bd2c6eb373d1bf039c60bc8b42be83b67fb39c2a2bc60b18d5883897d960405160405180910390a360405163ea0a523760e01b815260206004820152601060248201527f50726f78696573496e697469617465640000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156122a057600080fd5b505af11580156122b4573d6000803e3d6000fd5b5050505060088401546122d2908690600160a01b900460ff16613e2a565b50505050506122e16001606555565b5050565b6122ed6139f7565b60d0805460ff19811660ff909116151790556123076109a0565b60d05460405160ff909116151581526001600160a01b0391909116907fadea028b90fc36108cad0d47879e8f5e0efa35bc21ad2fcf625e4ce56aff3b4b9060200160405180910390a260d0546040805160ff909216151560f81b60208301528051600181840301815260218301918290527ff52cc7fd000000000000000000000000000000000000000000000000000000009091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163f52cc7fd916123d991602501615a03565b600060405180830381600087803b1580156123f357600080fd5b505af1158015612407573d6000803e3d6000fd5b50505050565b612415613a70565b60005a60cd54600090815260cb6020526040902060088101549192509061244590600160a01b900460ff16613ac9565b84516000819003612482576040517f03250eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825260008082526060602083018190529282018190528282015260808101919091526000606060005b848110156128fb578981815181106124cd576124cd615970565b602002602001015193508881815181106124e9576124e9615970565b6020026020010151925087818151811061250557612505615970565b6020026020010151915085600101838154811061252457612524615970565b90600052602060002090602091828204019190069054906101000a900460ff161561257b576040517f6d41cd6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125d58660030154856080015186604001518760000151886060015189602001516040516020016125b0959493929190615a4a565b6040516020818303038152906040528051906020012085858a60010180549050613bbd565b61260b576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60068601805490600061261d836159e9565b9190505550600186600101848154811061263957612639615970565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555060018081111561267457612674614ed4565b8451600181111561268757612687614ed4565b036126e55761269786858561400d565b600186015460068701541480156126b057506002860154155b80156126d257506006865460ff1660068111156126cf576126cf614ed4565b14155b156126e0576126e0866146fb565b6128e9565b6000845160018111156126fa576126fa614ed4565b036128b75760408051610160810190915286546126e091908890829060ff16600681111561272a5761272a614ed4565b600681111561273b5761273b614ed4565b8152602001600182018054806020026020016040519081016040528092919081815260200182805480156127ae57602002820191906000526020600020906000905b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161277d5790505b505050918352505060028201546020820152600382015460408201526004820154606082015260058201546080820152600682015460a0820152600782015460c082015260088201546001600160a01b03811660e0830152600160a01b900460ff1615156101008201526009820180546101209092019161282e90615837565b80601f016020809104026020016040519081016040528092919081815260200182805461285a90615837565b80156128a75780601f1061287c576101008083540402835291602001916128a7565b820191906000526020600020905b81548152906001019060200180831161288a57829003601f168201915b50505050508152505085856147f5565b6040517f88dd20d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806128f3816159e9565b9150506124b3565b506008850154612916908790600160a01b900460ff16613e2a565b5050505050506129266001606555565b505050565b6129336139f7565b600081815260cb602052604090206008810154600160a01b900460ff168015612962575061295f613703565b47115b801561299e57507f0000000000000000000000000000000000000000000000000000000000000000612992613703565b61299c9047615959565b105b156129d5576040517f69c00fad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001815460ff1660068111156129ed576129ed614ed4565b14612a24576040517f50feacf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd5415612a5e576040517f318cf47900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cd829055805460ff1916600217815560405182907f78f2b31e40dca1f52e437b553603e30b4916085657201b5792894208d3e918c190600090a260405163ea0a523760e01b815260206004820152601c60248201527f4368756753706c6173684465706c6f796d656e74417070726f7665640000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a5237906064016112d6565b612b1e61061d6109a0565b612b54576040517f70f3b56f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000878787878787604051602001612b7196959493929190615aa6565b60408051601f198184030181529181528151602092830120600081815260cb90935290822080549193509160ff90911690816006811115612bb457612bb4614ed4565b14158015612bd457506004816006811115612bd157612bd1614ed4565b14155b8015612bf257506005816006811115612bef57612bef614ed4565b14155b8015612c1057506006816006811115612c0d57612c0d614ed4565b14155b15612c47576040517fb1c30cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815460ff19166001178255600382018a905560048201899055600582018690558767ffffffffffffffff811115612c8057612c80615074565b604051908082528060200260200182016040528015612ca9578160200160208202803683370190505b508051612cc0916001850191602090910190614dcf565b50600282018790556008820180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b8615150217905560098201612d0a8682615b1d565b50827f2efcc05790a2408b85fd4ac0d2eb6ff0b3a28c02913b5772b38206eeaf7e1aaa8b8b8b8b8b8b8b612d3c6109a0565b604051612d50989796959493929190615bdd565b60405180910390a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd612d8f6109a0565b604051602001612dca919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401612df59190615c35565b600060405180830381600087803b158015612e0f57600080fd5b505af1158015612e23573d6000803e3d6000fd5b5050505050505050505050505050565b612e3b6139f7565b6001600160a01b038216600090815260ca60205260409020805460ff1916821515179055612e676109a0565b6001600160a01b0316811515836001600160a01b03167f0b9a24ac05b182ed15b84d4b2c08ef4a709487d65220beebcb8190410fff5a8460405160405180910390a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd82604051602001612ef091151560f81b815260010190565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016112d69190615c7c565b612f23613a70565b60005a60cd54600090815260cb60205260409020600881015491925090612f5390600160a01b900460ff16613ac9565b60cd54612f8c576040517f5f0825a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001810154600682015414612fcd576040517ffbd9e67500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83516002820154811461300c576040517f4f838f7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a081018252606080825260208201819052600092820183905281018290526080810191909152606060005b838110156134835787818151811061305657613056615970565b6020026020010151925086818151811061307257613072615970565b602002602001015191507f1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed6938360800151036130d9576040517fc0e6f38000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61310e856004015484600001518560200151866040015187606001518860800151604051602001611f6795949392919061599f565b613144576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808301516040517f72c6838f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916372c6838f916131b39160040190815260200190565b602060405180830381865afa1580156131d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f49190615920565b90506001600160a01b038116613236576040517f6602115a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816001600160a01b0316856040015186606001516040516024016132729291906001600160a01b0392831681529116602082015260400190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f192957c800000000000000000000000000000000000000000000000000000000179052516132d5919061593d565b600060405180830381855af49150503d8060008114613310576040519150601f19603f3d011682016040523d82523d6000602084013e613315565b606091505b5050905080613350576040517fd764f04e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84604001516001600160a01b031660cd547f7e1bc64dc0005c076de7c8597ca19cde8e68d0d0a28a32d75bc7934cffdafe888760000151886020015160405161339a929190615cc3565b60405180910390a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd8660400151604051602001613411919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161343c9190615cf1565b600060405180830381600087803b15801561345657600080fd5b505af115801561346a573d6000803e3d6000fd5b505050505050808061347b906159e9565b91505061303c565b5061348d846146fb565b60088401546122d2908690600160a01b900460ff16613e2a565b6134af6139f7565b6001600160a01b03811661352b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c71565b6135348161398d565b50565b61353f6139f7565b60cd5415613579576040517f318cf47900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000613583613703565b61358d9047615959565b90506135976109a0565b6001600160a01b03167f889d16c2f05ed249633dadc4c5c2aa8eeb677384800475aaf313cad7707e9e19826040516135d191815260200190565b60405180910390a260006135e36109a0565b604080516000815260208101918290526001600160a01b039290921691849161360c919061593d565b60006040518083038185875af1925050503d8060008114613649576040519150601f19603f3d011682016040523d82523d6000602084013e61364e565b606091505b5050905080613689576040517f27fcd9d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405163ea0a523760e01b815260206004820152601060248201527f4f776e657257697468647265774554480000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a5237906064016112d6565b600060cf5460ce546109aa9190615908565b60005a905061372988888888888888612b13565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663455259cb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ad9190615d38565b905060006137b9614b76565b6137c591506010615d51565b905060005a846137d884620186a0615908565b6137e29190615908565b6137ec9190615959565b905060006137fa8285615d51565b90508060cf600082825461380e9190615908565b9091555050505050505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361387e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b503390565b600054610100900460ff166139005760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b6113c2614b89565b600054610100900460ff166139855760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b6113c2614c06565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6139ff6109a0565b6001600160a01b0316613a1a6033546001600160a01b031690565b6001600160a01b0316146113c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c71565b600260655403613ac25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c71565b6002606555565b6001811515148015613b175750613ade6109a0565b6001600160a01b0316613b0b60cd54600090815260cb60205260409020600801546001600160a01b031690565b6001600160a01b031614155b15613b4e576040517f06ee429500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80158015613b865750613b5f6109a0565b6001600160a01b0316613b7a6033546001600160a01b031690565b6001600160a01b031614155b15613534576040517f6db2465f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808211613c345760405162461bcd60e51b815260206004820152603760248201527f4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d757360448201527f742062652067726561746572207468616e207a65726f2e0000000000000000006064820152608401610c71565b818410613ca85760405162461bcd60e51b8152602060048201526024808201527f4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f7560448201527f6e64732e000000000000000000000000000000000000000000000000000000006064820152608401610c71565b613cb182614c93565b835114613d4c5760405162461bcd60e51b815260206004820152604d60248201527f4c69625f4d65726b6c65547265653a20546f74616c207369626c696e6773206460448201527f6f6573206e6f7420636f72726563746c7920636f72726573706f6e6420746f2060648201527f746f74616c206c65617665732e00000000000000000000000000000000000000608482015260a401610c71565b8460005b8451811015613e1d5785600116600103613db657848181518110613d7657613d76615970565b602002602001015182604051602001613d99929190918252602082015260400190565b604051602081830303815290604052805190602001209150613e04565b81858281518110613dc957613dc9615970565b6020026020010151604051602001613deb929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b60019590951c9480613e15816159e9565b915050613d50565b5090951495945050505050565b80613e33575050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663455259cb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb79190615d38565b90506000613ec3614b76565b613ecf91506010615d51565b905060005a85613ee284620186a0615908565b613eec9190615908565b613ef69190615959565b905060006064613f267f000000000000000000000000000000000000000000000000000000000000000082615908565b613f308487615d51565b613f3a9190615d51565b613f449190615d70565b9050600060647f0000000000000000000000000000000000000000000000000000000000000000613f758588615d51565b613f7f9190615d51565b613f899190615d70565b90508160ce6000828254613f9d9190615908565b9091555082905060c96000613fb06109a0565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254613fdf9190615908565b925050819055508060cf6000828254613ff89190615908565b909155505050505050505050565b6001606555565b6002835460ff16600681111561402557614025614ed4565b1461405c576040517fcb6f6ae400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008083602001518060200190518101906140779190615df0565b915091506000846080015190506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856040516024016140c491815260200190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f21f8a7210000000000000000000000000000000000000000000000000000000017905251614127919061593d565b600060405180830381855af49150503d8060008114614162576040519150601f19603f3d011682016040523d82523d6000602084013e614167565b606091505b5091509150816141a3576040517fda45f5f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818060200190518101906141b99190615920565b90506001600160a01b0381163b156142d35760cd54816001600160a01b0316856040516141e6919061593d565b60405180910390207fdc12392bc0b29f679ba6e7c5f560dd5735a9909ee29c4b345ef19df2c623b1b0878b60405161421f929190615e2d565b60405180910390a460405163ea0a523760e01b815260206004820152601960248201527f436f6e74726163744465706c6f796d656e74536b69707065640000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156142b657600080fd5b505af11580156142ca573d6000803e3d6000fd5b50505050611834565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168888600060405160240161431693929190615e4f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc7aeef0f0000000000000000000000000000000000000000000000000000000017905251614379919061593d565b600060405180830381855af49150503d80600081146143b4576040519150601f19603f3d011682016040523d82523d6000602084013e6143b9565b606091505b509150915081866040516020016143d09190615e78565b604051602081830303815290604052906143fd5760405162461bcd60e51b8152600401610c7191906151b8565b506000818060200190518101906144149190615920565b9050806001600160a01b0316846001600160a01b0316036145445760cd54816001600160a01b03168860405161444a919061593d565b60405180910390207fa5f92178a767e4250cb11280da2b868af52f7dbe6194258920d017e1d30cd7798a8f606001518d8051906020012060405161449093929190615ebd565b60405180910390a460405163ea0a523760e01b815260206004820152601060248201527f436f6e74726163744465706c6f7965640000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b15801561452757600080fd5b505af115801561453b573d6000803e3d6000fd5b505050506146ed565b7f000000000000000000000000000000000000000000000000000000000000000060c960006145716109a0565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546145a09190615908565b925050819055507f000000000000000000000000000000000000000000000000000000000000000060ce60008282546145d99190615908565b909155505060cd546040516001600160a01b038616906145fa908a9061593d565b60405180910390207fb56435b217b7b283698159b613df8b2b5d3c9eb8a9cf2abd2762d0b9d08c098b8a8e604051614633929190615e2d565b60405180910390a47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f52cc7fd60cd5460405160200161467f91815260200190565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016146aa9190615ee2565b600060405180830381600087803b1580156146c457600080fd5b505af11580156146d8573d6000803e3d6000fd5b5050600060cd5550508b5460ff19166006178c555b505050505050505050505050565b805460ff1916600417815561470e6109a0565b6001600160a01b031660cd547f745f3f165a11892e95c826e15a0e3f1edebd0c600775d4e34e41d08f0c73ecf260405160405180910390a360405163ea0a523760e01b815260206004820152601d60248201527f4368756753706c6173684465706c6f796d656e74436f6d706c6574656400000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b1580156147d557600080fd5b505af11580156147e9573d6000803e3d6000fd5b5050600060cd55505050565b60038351600681111561480a5761480a614ed4565b14614841576040517fb38cba4800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608201516040517f72c6838f0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916372c6838f916148b09160040190815260200190565b602060405180830381865afa1580156148cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148f19190615920565b90507f1579d012ead512dcb248c91571fa46aaa0f3399f8d3e1098fac22575db2ed693836060015103614950576040517fc0e6f38000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000856020015180602001905181019061496d9190615f29565b9250925092506000846001600160a01b0316876040015185858560405160240161499a9493929190615f7f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9bc6ee9a00000000000000000000000000000000000000000000000000000000179052516149fd919061593d565b600060405180830381855af49150503d8060008114614a38576040519150601f19603f3d011682016040523d82523d6000602084013e614a3d565b606091505b5050905080614a78576040517fac5785a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614a806109a0565b6001600160a01b031687604001516001600160a01b031660cd547f572ca77d05d5995d2382e9e3b5f4819a396a2b7914dd3cb9a81070b9dbe1e2f589604051614acb91815260200190565b60405180910390a460405163ea0a523760e01b815260206004820152600f60248201527f53657450726f787953746f72616765000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea0a523790606401600060405180830381600087803b158015614b6257600080fd5b505af11580156146ed573d6000803e3d6000fd5b366000614b81614d78565b915091509091565b600054610100900460ff166140065760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b600054610100900460ff16614c835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c71565b6113c2614c8e6109a0565b61398d565b6000808211614d0a5760405162461bcd60e51b815260206004820152603060248201527f4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d70757465206360448201527f65696c286c6f675f3229206f6620302e000000000000000000000000000000006064820152608401610c71565b81600103614d1a57506000919050565b81600060805b60018110614d585780614d36600180831b615959565b901b831615614d5057614d498183615908565b92811c9291505b60011c614d20565b506001811b8414614d7157614d6e600182615908565b90505b9392505050565b3660007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303614dc75760008036614dba601482615959565b92614b8193929190615fb0565b600036614b81565b82805482825590600052602060002090601f01602090048101928215614e645791602002820160005b83821115614e3557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302614df8565b8015614e625782816101000a81549060ff0219169055600101602081600001049283019260010302614e35565b505b50614e70929150614e74565b5090565b5b80821115614e705760008155600101614e75565b6001600160a01b038116811461353457600080fd5b600060208284031215614eb057600080fd5b8135614d7181614e89565b600060208284031215614ecd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60078110614f1357614f13614ed4565b9052565b600081518084526020808501945080840160005b83811015614f49578151151587529582019590820190600101614f2b565b509495945050505050565b60005b83811015614f6f578181015183820152602001614f57565b838111156124075750506000910152565b60008151808452614f98816020860160208601614f54565b601f01601f19169290920160200192915050565b60208152614fbe602082018351614f03565b60006020830151610160806040850152614fdc610180850183614f17565b91506040850151606085015260608501516080850152608085015160a085015260a085015160c085015260c085015160e085015260e085015161010081818701528087015191505061012061503b818701836001600160a01b03169052565b86015190506101406150508682018315159052565b860151858403601f190183870152905061506a8382614f80565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160a0810167ffffffffffffffff811182821017156150c6576150c6615074565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156150f5576150f5615074565b604052919050565b600067ffffffffffffffff82111561511757615117615074565b50601f01601f191660200190565b600082601f83011261513657600080fd5b8135615149615144826150fd565b6150cc565b81815284602083860101111561515e57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561518d57600080fd5b813567ffffffffffffffff8111156151a457600080fd5b6151b084828501615125565b949350505050565b602081526000614d716020830184614f80565b80356151d681614e89565b919050565b6000806000606084860312156151f057600080fd5b83356151fb81614e89565b925060208401359150604084013561521281614e89565b809150509250925092565b600067ffffffffffffffff82111561523757615237615074565b5060051b60200190565b600082601f83011261525257600080fd5b813560206152626151448361521d565b82815260059290921b8401810191818101908684111561528157600080fd5b8286015b8481101561535257803567ffffffffffffffff808211156152a65760008081fd5b818901915060a080601f19848d030112156152c15760008081fd5b6152c96150a3565b87840135838111156152db5760008081fd5b6152e98d8a83880101615125565b825250604080850135848111156153005760008081fd5b61530e8e8b83890101615125565b8a84015250606093508385013561532481614e89565b9082015260808481013561533781614e89565b93820193909352920135908201528352918301918301615285565b509695505050505050565b600082601f83011261536e57600080fd5b8135602061537e6151448361521d565b828152600592831b850182019282820191908785111561539d57600080fd5b8387015b8581101561543157803567ffffffffffffffff8111156153c15760008081fd5b8801603f81018a136153d35760008081fd5b8581013560406153e56151448361521d565b82815291851b8301810191888101908d8411156154025760008081fd5b938201935b8385101561542057843582529389019390890190615407565b8852505050938501935084016153a1565b5090979650505050505050565b600082601f83011261544f57600080fd5b8135602061545f6151448361521d565b82815260059290921b8401810191818101908684111561547e57600080fd5b8286015b8481101561535257803567ffffffffffffffff808211156154a35760008081fd5b818901915060a080601f19848d030112156154be5760008081fd5b6154c66150a3565b87840135600281106154d85760008081fd5b8152604084810135848111156154ee5760008081fd5b6154fc8e8b83890101615125565b8a84015250606061550e8187016151cb565b8284015260809150818601358184015250828501359250838311156155335760008081fd5b6155418d8a85880101615125565b908201528652505050918301918301615482565b600082601f83011261556657600080fd5b813560206155766151448361521d565b82815260059290921b8401810191818101908684111561559557600080fd5b8286015b848110156153525780358352918301918301615599565b600080600080600060a086880312156155c857600080fd5b853567ffffffffffffffff808211156155e057600080fd5b6155ec89838a01615241565b9650602088013591508082111561560257600080fd5b61560e89838a0161535d565b9550604088013591508082111561562457600080fd5b61563089838a0161543e565b9450606088013591508082111561564657600080fd5b61565289838a01615555565b9350608088013591508082111561566857600080fd5b506156758882890161535d565b9150509295509295909350565b6000806040838503121561569557600080fd5b823567ffffffffffffffff808211156156ad57600080fd5b6156b986838701615241565b935060208501359150808211156156cf57600080fd5b506156dc8582860161535d565b9150509250929050565b6000806000606084860312156156fb57600080fd5b833567ffffffffffffffff8082111561571357600080fd5b61571f8783880161543e565b9450602086013591508082111561573557600080fd5b61574187838801615555565b9350604086013591508082111561575757600080fd5b506157648682870161535d565b9150509250925092565b801515811461353457600080fd5b600080600080600080600060e0888a03121561579757600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff8111156157d157600080fd5b6157dd8a828b01615125565b92505060c08801356157ee8161576e565b8091505092959891949750929550565b6000806040838503121561581157600080fd5b823561581c81614e89565b9150602083013561582c8161576e565b809150509250929050565b600181811c9082168061584b57607f821691505b602082108103610d7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008060006060848603121561589957600080fd5b83516158a481614e89565b6020850151604086015191945092506152128161576e565b6000602082840312156158ce57600080fd5b8151614d718161576e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561591b5761591b6158d9565b500190565b60006020828403121561593257600080fd5b8151614d7181614e89565b6000825161594f818460208701614f54565b9190910192915050565b60008282101561596b5761596b6158d9565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60a0815260006159b260a0830188614f80565b82810360208401526159c48188614f80565b6001600160a01b03968716604085015294909516606083015250608001529392505050565b600060001982036159fc576159fc6158d9565b5060010190565b60408152601760408201527f546f67676c65644d616e6167656450726f706f73616c730000000000000000006060820152608060208201526000614d716080830184614f80565b60a081526000615a5d60a0830188614f80565b6001600160a01b038716602084015260028610615a7c57615a7c614ed4565b8560408401528460608401528281036080840152615a9a8185614f80565b98975050505050505050565b86815285602082015284604082015283606082015282608082015260c060a08201526000615a9a60c0830184614f80565b601f82111561292657600081815260208120601f850160051c81016020861015615afe5750805b601f850160051c820191505b8181101561130457828155600101615b0a565b815167ffffffffffffffff811115615b3757615b37615074565b615b4b81615b458454615837565b84615ad7565b602080601f831160018114615b805760008415615b685750858301515b600019600386901b1c1916600185901b178555611304565b600085815260208120601f198616915b82811015615baf57888601518255948401946001909101908401615b90565b5085821015615bcd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006101008a83528960208401528860408401528760608401528660808401528060a0840152615c0f81840187614f80565b94151560c084015250506001600160a01b039190911660e0909101529695505050505050565b60408152601c60408201527f4368756753706c6173684465706c6f796d656e7450726f706f736564000000006060820152608060208201526000614d716080830184614f80565b60408152600b60408201527f50726f706f7365725365740000000000000000000000000000000000000000006060820152608060208201526000614d716080830184614f80565b604081526000615cd66040830185614f80565b8281036020840152615ce88185614f80565b95945050505050565b60408152600d60408201527f50726f78795570677261646564000000000000000000000000000000000000006060820152608060208201526000614d716080830184614f80565b600060208284031215615d4a57600080fd5b5051919050565b6000816000190483118215151615615d6b57615d6b6158d9565b500290565b600082615da6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082601f830112615dbc57600080fd5b8151615dca615144826150fd565b818152846020838601011115615ddf57600080fd5b6151b0826020830160208701614f54565b60008060408385031215615e0357600080fd5b82519150602083015167ffffffffffffffff811115615e2157600080fd5b6156dc85828601615dab565b604081526000615e406040830185614f80565b90508260208301529392505050565b838152606060208201526000615e686060830185614f80565b9050826040830152949350505050565b7f4661696c656420746f206465706c6f793a200000000000000000000000000000815260008251615eb0816012850160208701614f54565b9190910160120192915050565b606081526000615ed06060830186614f80565b60208301949094525060400152919050565b60408152601060408201527f4465706c6f796d656e744661696c6564000000000000000000000000000000006060820152608060208201526000614d716080830184614f80565b600080600060608486031215615f3e57600080fd5b83519250602084015160ff81168114615f5657600080fd5b604085015190925067ffffffffffffffff811115615f7357600080fd5b61576486828701615dab565b6001600160a01b038516815283602082015260ff8316604082015260806060820152600061506a6080830184614f80565b60008085851115615fc057600080fd5b83861115615fcd57600080fd5b505082019391909203915056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2BF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A20BA78 GT PUSH2 0x16E JUMPI DUP1 PUSH4 0xEF9FE8E4 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xFC7B9C18 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xFC7B9C18 EQ PUSH2 0x937 JUMPI DUP1 PUSH4 0xFD95A3BE EQ PUSH2 0x94C JUMPI DUP1 PUSH4 0xFFF81D4C EQ PUSH2 0x96C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x902 JUMPI DUP1 PUSH4 0xF40C7C4C EQ PUSH2 0x922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xF220ACA9 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xF220ACA9 EQ PUSH2 0x87A JUMPI DUP1 PUSH4 0xF23D6142 EQ PUSH2 0x8AE JUMPI DUP1 PUSH4 0xF2A7208D EQ PUSH2 0x8CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xEF9FE8E4 EQ PUSH2 0x84A JUMPI DUP1 PUSH4 0xF0317111 EQ PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBD8BCD89 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xDFBA66F0 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xDFBA66F0 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0xE8EA2D08 EQ PUSH2 0x813 JUMPI DUP1 PUSH4 0xE9ED9B64 EQ PUSH2 0x82A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBD8BCD89 EQ PUSH2 0x7D1 JUMPI DUP1 PUSH4 0xC6EB84E5 EQ PUSH2 0x7E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA53A1ADF GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xA53A1ADF EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xA7882F93 EQ PUSH2 0x77D JUMPI DUP1 PUSH4 0xBAE4B95F EQ PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9A20BA78 EQ PUSH2 0x728 JUMPI DUP1 PUSH4 0xA47D0801 EQ PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0x21C JUMPI DUP1 PUSH4 0x79E6F49A GT PUSH2 0x1D0 JUMPI DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6CA JUMPI DUP1 PUSH4 0x91E219AE EQ PUSH2 0x6E8 JUMPI DUP1 PUSH4 0x9449A44F EQ PUSH2 0x708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79E6F49A EQ PUSH2 0x676 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x74EC29A0 GT PUSH2 0x201 JUMPI DUP1 PUSH4 0x74EC29A0 EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0x7521120F EQ PUSH2 0x622 JUMPI DUP1 PUSH4 0x75CD65E1 EQ PUSH2 0x656 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x5C0 JUMPI DUP1 PUSH4 0x73B4A738 EQ PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4731D48C GT PUSH2 0x273 JUMPI DUP1 PUSH4 0x54FD4D50 GT PUSH2 0x258 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x572B6C05 EQ PUSH2 0x53A JUMPI DUP1 PUSH4 0x61F5499F EQ PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4731D48C EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x5229C975 EQ PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E0A6960 GT PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x2E0A6960 EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x37404017 EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x523A04C EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x18177497 EQ PUSH2 0x3FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x3A7 JUMPI CALLVALUE PUSH2 0x2CD PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6C703791F399558807424F489CCD811C72B4FF0B74AF547264FAD7C646776DF0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4554484465706F73697465640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x42D PUSH2 0x418 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH1 0xCA 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 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x49F PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH2 0x9AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F4 SWAP2 SWAP1 PUSH2 0x4FAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4CC PUSH2 0x4C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x517B JUMP JUMPDEST PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F4 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0xD84 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x10C1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x518 PUSH2 0x130C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x546 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x42D PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x13B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH2 0x5F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x42D PUSH2 0x61D CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH2 0x13C4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x662 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x671 CALLDATASIZE PUSH1 0x4 PUSH2 0x51DB JUMP JUMPDEST PUSH2 0x14DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x691 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH2 0x183F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x703 CALLDATASIZE PUSH1 0x4 PUSH2 0x55B0 JUMP JUMPDEST PUSH2 0x1D38 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x714 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x723 CALLDATASIZE PUSH1 0x4 PUSH2 0x5682 JUMP JUMPDEST PUSH2 0x1D5E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x734 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x22E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x749 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x758 CALLDATASIZE PUSH1 0x4 PUSH2 0x56E6 JUMP JUMPDEST PUSH2 0x240D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x778 CALLDATASIZE PUSH1 0x4 PUSH2 0x4EBB JUMP JUMPDEST PUSH2 0x292B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x798 CALLDATASIZE PUSH1 0x4 PUSH2 0x577C JUMP JUMPDEST PUSH2 0x2B13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCF SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCE SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCD SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xCD SLOAD ISZERO ISZERO PUSH2 0x42D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x845 CALLDATASIZE PUSH1 0x4 PUSH2 0x57FE JUMP JUMPDEST PUSH2 0x2E33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xD0 SLOAD PUSH2 0x42D SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH1 0xCC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x8C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x5682 JUMP JUMPDEST PUSH2 0x2F1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E0 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x91D CALLDATASIZE PUSH1 0x4 PUSH2 0x4E9E JUMP JUMPDEST PUSH2 0x34A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x92E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x3537 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x943 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH2 0x3703 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x958 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A5 PUSH2 0x967 CALLDATASIZE PUSH1 0x4 PUSH2 0x577C JUMP JUMPDEST PUSH2 0x3715 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x978 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x471 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AA PUSH2 0x3821 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x160 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP2 SWAP1 MSTORE DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xA0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xC0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x100 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x140 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x160 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xA39 JUMPI PUSH2 0xA39 PUSH2 0x4ED4 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xA4A JUMPI PUSH2 0xA4A PUSH2 0x4ED4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD 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 0xABD JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xA8C JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH2 0x120 SWAP1 SWAP3 ADD SWAP2 PUSH2 0xB3D SWAP1 PUSH2 0x5837 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 0xB69 SWAP1 PUSH2 0x5837 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBB6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB8B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBB6 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 0xB99 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 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xBE9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xC03 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC03 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xC7A 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 0xCBA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xCD3 SWAP2 SWAP1 PUSH2 0x5884 JUMP JUMPDEST PUSH1 0xCC DUP3 SWAP1 SSTORE PUSH1 0xD0 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO OR SWAP1 SSTORE SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH2 0xCF5 PUSH2 0x3883 JUMP JUMPDEST PUSH2 0xCFD PUSH2 0x3908 JUMP JUMPDEST PUSH2 0xD06 DUP4 PUSH2 0x398D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP5 POP POP POP POP DUP1 ISZERO PUSH2 0xD7E JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x91D14854 PUSH32 0x9E982EFBC2164E40FCD14DA9A0408A971E4224CB50A113D83B1C90CD8C1434DD PUSH2 0xDDC PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE3E 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 0xE62 SWAP2 SWAP1 PUSH2 0x58BC JUMP JUMPDEST PUSH2 0xE98 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6696FA8100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD PUSH2 0xED1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F0825A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0xF27 JUMPI PUSH1 0x40 MLOAD PUSH32 0xBB3291200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 PUSH1 0x7 ADD SLOAD PUSH2 0xF57 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST TIMESTAMP GT PUSH2 0xF8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x7EA3C87D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0xF9D PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xFDF PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0xDEF501073BF641EBC9528324E0366C9737F17823FA009980717EC55DF3B05F20 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E74436C61696D65640000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10C9 PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0xCD SLOAD PUSH2 0x1102 JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F0825A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x115D JUMPI POP TIMESTAMP PUSH32 0x0 DUP3 PUSH1 0x7 ADD SLOAD PUSH2 0x115A SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST LT ISZERO JUMPDEST ISZERO PUSH2 0x11FD JUMPI PUSH32 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x118F PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x11BE SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x11F7 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0xCD DUP1 SLOAD PUSH1 0x0 SWAP1 SWAP2 SSTORE DUP2 SLOAD PUSH1 0xFF NOT AND PUSH1 0x5 OR DUP3 SSTORE PUSH2 0x1219 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH32 0x6E376540ABC69EA2ABA618BAF9970A40A410209797848AC685C0D5E321536C96 DUP5 PUSH1 0x6 ADD SLOAD PUSH1 0x40 MLOAD PUSH2 0x1258 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E7443616E63656C6C6564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1304 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1330 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x13B8 PUSH2 0x39F7 JUMP JUMPDEST PUSH2 0x13C2 PUSH1 0x0 PUSH2 0x398D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xD0 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x149D JUMPI POP PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x1036D397ACC4220751130E8FCC4CE6CB991A324073D229F09E751AC8624F19C0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1479 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 0x149D SWAP2 SWAP1 PUSH2 0x58BC JUMP JUMPDEST DUP1 PUSH2 0x14C0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x14D8 JUMPI POP PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP2 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x14E6 PUSH2 0x39F7 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x152A JUMPI PUSH1 0x40 MLOAD PUSH32 0x58796EA800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD ISZERO PUSH2 0x1564 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318CF47900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 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 0x72C6838F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15E5 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 0x1609 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x164B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6602115A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND DUP3 MSTORE DUP5 SWAP2 SWAP1 DUP7 AND SWAP1 PUSH32 0x6828050FF1390D9C84304DB69D7669BDC13A1DF9715CEDF6FE1EEB0BEC3843EA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x7EFF275E00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x1716 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1751 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 0x1756 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1791 JUMPI PUSH1 0x40 MLOAD PUSH32 0xED9AF69100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78794578706F7274656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1820 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1834 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x91D14854 PUSH32 0x9E982EFBC2164E40FCD14DA9A0408A971E4224CB50A113D83B1C90CD8C1434DD PUSH2 0x1897 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F9 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 0x191D SWAP2 SWAP1 PUSH2 0x58BC JUMP JUMPDEST PUSH2 0x1953 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6696FA8100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x198D JUMPI PUSH1 0x40 MLOAD PUSH32 0x5E85AE7300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x199A PUSH2 0x9A0 JUMP JUMPDEST 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 LT ISZERO PUSH2 0x19F3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC70453EA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SELFBALANCE PUSH1 0xCF SLOAD DUP3 PUSH2 0x1A02 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST GT ISZERO PUSH2 0x1A3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x356680B700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x1A47 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1A76 SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1A8F SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1A9D SWAP1 POP PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xBA98915499C19898A23F510DEEAA915637D1B5D537DF51DC105D01B8E69BE7E2 DUP3 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x1AD4 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x40 MLOAD PUSH2 0x1B0C SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH2 0x1B1E PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 DUP5 SWAP2 PUSH2 0x1B47 SWAP2 SWAP1 PUSH2 0x593D 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 0x1B84 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 0x1B89 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1BC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x27FCD9D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCF SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 SWAP1 SWAP2 PUSH2 0x1C0F SWAP2 PUSH2 0x593D 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 0x1C4C 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 0x1C51 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1C8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x27FCD9D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4578656375746F725061796D656E74436C61696D656400000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D42 DUP6 DUP6 PUSH2 0x1D5E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1D54 JUMPI PUSH2 0x1D54 DUP4 DUP4 DUP4 PUSH2 0x240D JUMP JUMPDEST PUSH2 0x10BA DUP6 DUP6 PUSH2 0x2F1B JUMP JUMPDEST PUSH2 0x1D66 PUSH2 0x3A70 JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x1D96 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3AC9 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP2 PUSH1 0x6 ADD SLOAD EQ PUSH2 0x1DD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x415522D000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1DEF JUMPI PUSH2 0x1DEF PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x1E26 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCB6F6AE400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x2 DUP3 ADD SLOAD DUP2 EQ PUSH2 0x1E65 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4F838F7C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21C5 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1EAF JUMPI PUSH2 0x1EAF PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP3 POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1ECB JUMPI PUSH2 0x1ECB PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH32 0x1579D012EAD512DCB248C91571FA46AAA0F3399F8D3E1098FAC22575DB2ED693 DUP4 PUSH1 0x80 ADD MLOAD SUB PUSH2 0x1F32 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC0E6F38000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F89 DUP6 PUSH1 0x4 ADD SLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F67 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x599F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 DUP6 DUP10 PUSH1 0x2 ADD SLOAD PUSH2 0x3BBD JUMP JUMPDEST PUSH2 0x1FBF JUMPI PUSH1 0x40 MLOAD PUSH32 0xB05E92FA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x72C6838F SWAP2 PUSH2 0x202E SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x204B 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 0x206F SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6602115A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x479AA92700000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x2135 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2170 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 0x2175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x21B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FB523CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP DUP1 DUP1 PUSH2 0x21BD SWAP1 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E95 JUMP JUMPDEST POP DUP4 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP5 SSTORE PUSH2 0x21D9 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0xBFEA78BD2C6EB373D1BF039C60BC8B42BE83B67FB39C2A2BC60B18D5883897D9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78696573496E6974696174656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x8 DUP5 ADD SLOAD PUSH2 0x22D2 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E2A JUMP JUMPDEST POP POP POP POP POP PUSH2 0x22E1 PUSH1 0x1 PUSH1 0x65 SSTORE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x22ED PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0xD0 DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND PUSH1 0xFF SWAP1 SWAP2 AND ISZERO OR SWAP1 SSTORE PUSH2 0x2307 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0xD0 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH32 0xADEA028B90FC36108CAD0D47879E8F5E0EFA35BC21AD2FCF625E4CE56AFF3B4B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0xD0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND ISZERO ISZERO PUSH1 0xF8 SHL PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0x1 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x21 DUP4 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH32 0xF52CC7FD00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0xF52CC7FD SWAP2 PUSH2 0x23D9 SWAP2 PUSH1 0x25 ADD PUSH2 0x5A03 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2407 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2415 PUSH2 0x3A70 JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x2445 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3AC9 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x0 DUP2 SWAP1 SUB PUSH2 0x2482 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3250EDA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD DUP2 SWAP1 MSTORE DUP3 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x28FB JUMPI DUP10 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x24CD JUMPI PUSH2 0x24CD PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP4 POP DUP9 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x24E9 JUMPI PUSH2 0x24E9 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP3 POP DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x2505 JUMPI PUSH2 0x2505 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP DUP6 PUSH1 0x1 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2524 JUMPI PUSH2 0x2524 PUSH2 0x5970 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x257B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D41CD6C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x25D5 DUP7 PUSH1 0x3 ADD SLOAD DUP6 PUSH1 0x80 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x0 ADD MLOAD DUP9 PUSH1 0x60 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25B0 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5A4A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP6 DUP6 DUP11 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 POP PUSH2 0x3BBD JUMP JUMPDEST PUSH2 0x260B JUMPI PUSH1 0x40 MLOAD PUSH32 0xB05E92FA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP7 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x261D DUP4 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 DUP7 PUSH1 0x1 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2639 JUMPI PUSH2 0x2639 PUSH2 0x5970 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x2674 JUMPI PUSH2 0x2674 PUSH2 0x4ED4 JUMP JUMPDEST DUP5 MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2687 JUMPI PUSH2 0x2687 PUSH2 0x4ED4 JUMP JUMPDEST SUB PUSH2 0x26E5 JUMPI PUSH2 0x2697 DUP7 DUP6 DUP6 PUSH2 0x400D JUMP JUMPDEST PUSH1 0x1 DUP7 ADD SLOAD PUSH1 0x6 DUP8 ADD SLOAD EQ DUP1 ISZERO PUSH2 0x26B0 JUMPI POP PUSH1 0x2 DUP7 ADD SLOAD ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x26D2 JUMPI POP PUSH1 0x6 DUP7 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x26CF JUMPI PUSH2 0x26CF PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST ISZERO PUSH2 0x26E0 JUMPI PUSH2 0x26E0 DUP7 PUSH2 0x46FB JUMP JUMPDEST PUSH2 0x28E9 JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x26FA JUMPI PUSH2 0x26FA PUSH2 0x4ED4 JUMP JUMPDEST SUB PUSH2 0x28B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH2 0x160 DUP2 ADD SWAP1 SWAP2 MSTORE DUP7 SLOAD PUSH2 0x26E0 SWAP2 SWAP1 DUP9 SWAP1 DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x272A JUMPI PUSH2 0x272A PUSH2 0x4ED4 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x273B JUMPI PUSH2 0x273B PUSH2 0x4ED4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD 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 0x27AE JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x277D JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD DUP1 SLOAD PUSH2 0x120 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x282E SWAP1 PUSH2 0x5837 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 0x285A SWAP1 PUSH2 0x5837 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x28A7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x287C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x28A7 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 0x288A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP6 DUP6 PUSH2 0x47F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x88DD20D400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x28F3 DUP2 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x24B3 JUMP JUMPDEST POP PUSH1 0x8 DUP6 ADD SLOAD PUSH2 0x2916 SWAP1 DUP8 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E2A JUMP JUMPDEST POP POP POP POP POP POP PUSH2 0x2926 PUSH1 0x1 PUSH1 0x65 SSTORE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2933 PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x2962 JUMPI POP PUSH2 0x295F PUSH2 0x3703 JUMP JUMPDEST SELFBALANCE GT JUMPDEST DUP1 ISZERO PUSH2 0x299E JUMPI POP PUSH32 0x0 PUSH2 0x2992 PUSH2 0x3703 JUMP JUMPDEST PUSH2 0x299C SWAP1 SELFBALANCE PUSH2 0x5959 JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x29D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x69C00FAD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x29ED JUMPI PUSH2 0x29ED PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x2A24 JUMPI PUSH1 0x40 MLOAD PUSH32 0x50FEACF800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD SLOAD ISZERO PUSH2 0x2A5E JUMPI PUSH1 0x40 MLOAD PUSH32 0x318CF47900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xCD DUP3 SWAP1 SSTORE DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE PUSH1 0x40 MLOAD DUP3 SWAP1 PUSH32 0x78F2B31E40DCA1F52E437B553603E30B4916085657201B5792894208D3E918C1 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E74417070726F76656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH2 0x12D6 JUMP JUMPDEST PUSH2 0x2B1E PUSH2 0x61D PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x2B54 JUMPI PUSH1 0x40 MLOAD PUSH32 0x70F3B56F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2B71 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5AA6 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 PUSH1 0xCB SWAP1 SWAP4 MSTORE SWAP1 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2BB4 JUMPI PUSH2 0x2BB4 PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x2BD4 JUMPI POP PUSH1 0x4 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2BD1 JUMPI PUSH2 0x2BD1 PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2BF2 JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2BEF JUMPI PUSH2 0x2BEF PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2C10 JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2C0D JUMPI PUSH2 0x2C0D PUSH2 0x4ED4 JUMP JUMPDEST EQ ISZERO JUMPDEST ISZERO PUSH2 0x2C47 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB1C30CFF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP3 SSTORE PUSH1 0x3 DUP3 ADD DUP11 SWAP1 SSTORE PUSH1 0x4 DUP3 ADD DUP10 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD DUP7 SWAP1 SSTORE DUP8 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C80 JUMPI PUSH2 0x2C80 PUSH2 0x5074 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2CA9 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x2CC0 SWAP2 PUSH1 0x1 DUP6 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x4DCF JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP8 SWAP1 SSTORE PUSH1 0x8 DUP3 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL DUP7 ISZERO ISZERO MUL OR SWAP1 SSTORE PUSH1 0x9 DUP3 ADD PUSH2 0x2D0A DUP7 DUP3 PUSH2 0x5B1D JUMP JUMPDEST POP DUP3 PUSH32 0x2EFCC05790A2408B85FD4AC0D2EB6FF0B3A28C02913B5772B38206EEAF7E1AAA DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0x2D3C PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D50 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5BDD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD PUSH2 0x2D8F PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2DCA SWAP2 SWAP1 PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND DUP2 MSTORE PUSH1 0x14 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DF5 SWAP2 SWAP1 PUSH2 0x5C35 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2E3B PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO OR SWAP1 SSTORE PUSH2 0x2E67 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 ISZERO ISZERO DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB9A24AC05B182ED15B84D4B2C08EF4A709487D65220BEEBCB8190410FFF5A84 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2EF0 SWAP2 ISZERO ISZERO PUSH1 0xF8 SHL DUP2 MSTORE PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12D6 SWAP2 SWAP1 PUSH2 0x5C7C JUMP JUMPDEST PUSH2 0x2F23 PUSH2 0x3A70 JUMP JUMPDEST PUSH1 0x0 GAS PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x2F53 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3AC9 JUMP JUMPDEST PUSH1 0xCD SLOAD PUSH2 0x2F8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x5F0825A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x6 DUP3 ADD SLOAD EQ PUSH2 0x2FCD JUMPI PUSH1 0x40 MLOAD PUSH32 0xFBD9E67500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x2 DUP3 ADD SLOAD DUP2 EQ PUSH2 0x300C JUMPI PUSH1 0x40 MLOAD PUSH32 0x4F838F7C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x60 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3483 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3056 JUMPI PUSH2 0x3056 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP3 POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3072 JUMPI PUSH2 0x3072 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP PUSH32 0x1579D012EAD512DCB248C91571FA46AAA0F3399F8D3E1098FAC22575DB2ED693 DUP4 PUSH1 0x80 ADD MLOAD SUB PUSH2 0x30D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC0E6F38000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x310E DUP6 PUSH1 0x4 ADD SLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F67 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x599F JUMP JUMPDEST PUSH2 0x3144 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB05E92FA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x72C6838F SWAP2 PUSH2 0x31B3 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31D0 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 0x31F4 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3236 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6602115A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3272 SWAP3 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x192957C800000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x32D5 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3310 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 0x3315 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3350 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD764F04E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0x7E1BC64DC0005C076DE7C8597CA19CDE8E68D0D0A28A32D75BC7934CFFDAFE88 DUP8 PUSH1 0x0 ADD MLOAD DUP9 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x339A SWAP3 SWAP2 SWAP1 PUSH2 0x5CC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3411 SWAP2 SWAP1 PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND DUP2 MSTORE PUSH1 0x14 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x343C SWAP2 SWAP1 PUSH2 0x5CF1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3456 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x346A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP DUP1 DUP1 PUSH2 0x347B SWAP1 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x303C JUMP JUMPDEST POP PUSH2 0x348D DUP5 PUSH2 0x46FB JUMP JUMPDEST PUSH1 0x8 DUP5 ADD SLOAD PUSH2 0x22D2 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3E2A JUMP JUMPDEST PUSH2 0x34AF PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x352B 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 0xC71 JUMP JUMPDEST PUSH2 0x3534 DUP2 PUSH2 0x398D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x353F PUSH2 0x39F7 JUMP JUMPDEST PUSH1 0xCD SLOAD ISZERO PUSH2 0x3579 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318CF47900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3583 PUSH2 0x3703 JUMP JUMPDEST PUSH2 0x358D SWAP1 SELFBALANCE PUSH2 0x5959 JUMP JUMPDEST SWAP1 POP PUSH2 0x3597 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x889D16C2F05ED249633DADC4C5C2AA8EEB677384800475AAF313CAD7707E9E19 DUP3 PUSH1 0x40 MLOAD PUSH2 0x35D1 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 PUSH2 0x35E3 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 DUP5 SWAP2 PUSH2 0x360C SWAP2 SWAP1 PUSH2 0x593D 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 0x3649 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 0x364E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3689 JUMPI PUSH1 0x40 MLOAD PUSH32 0x27FCD9D100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E6572576974686472657745544800000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH2 0x12D6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xCF SLOAD PUSH1 0xCE SLOAD PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST PUSH1 0x0 GAS SWAP1 POP PUSH2 0x3729 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2B13 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x455259CB 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 0x3789 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 0x37AD SWAP2 SWAP1 PUSH2 0x5D38 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x37B9 PUSH2 0x4B76 JUMP JUMPDEST PUSH2 0x37C5 SWAP2 POP PUSH1 0x10 PUSH2 0x5D51 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 GAS DUP5 PUSH2 0x37D8 DUP5 PUSH3 0x186A0 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x37E2 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x37EC SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x37FA DUP3 DUP6 PUSH2 0x5D51 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xCF PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x380E SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x387E JUMPI POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC CALLDATASIZE ADD CALLDATALOAD PUSH1 0x60 SHR SWAP1 JUMP JUMPDEST POP CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3900 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 0xC71 JUMP JUMPDEST PUSH2 0x13C2 PUSH2 0x4B89 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3985 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 0xC71 JUMP JUMPDEST PUSH2 0x13C2 PUSH2 0x4C06 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 PUSH2 0x39FF PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3A1A PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13C2 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 0xC71 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x65 SLOAD SUB PUSH2 0x3AC2 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 0xC71 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x65 SSTORE JUMP JUMPDEST PUSH1 0x1 DUP2 ISZERO ISZERO EQ DUP1 ISZERO PUSH2 0x3B17 JUMPI POP PUSH2 0x3ADE PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3B0B PUSH1 0xCD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3B4E JUMPI PUSH1 0x40 MLOAD PUSH32 0x6EE429500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 ISZERO DUP1 ISZERO PUSH2 0x3B86 JUMPI POP PUSH2 0x3B5F PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3B7A PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x3534 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6DB2465F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x3C34 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 0x4C69625F4D65726B6C65547265653A20546F74616C206C6561766573206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x742062652067726561746572207468616E207A65726F2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC71 JUMP JUMPDEST DUP2 DUP5 LT PUSH2 0x3CA8 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 0x4C69625F4D65726B6C65547265653A20496E646578206F7574206F6620626F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E64732E00000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC71 JUMP JUMPDEST PUSH2 0x3CB1 DUP3 PUSH2 0x4C93 JUMP JUMPDEST DUP4 MLOAD EQ PUSH2 0x3D4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C69625F4D65726B6C65547265653A20546F74616C207369626C696E67732064 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F6573206E6F7420636F72726563746C7920636F72726573706F6E6420746F20 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x746F74616C206C65617665732E00000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xC71 JUMP JUMPDEST DUP5 PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x3E1D JUMPI DUP6 PUSH1 0x1 AND PUSH1 0x1 SUB PUSH2 0x3DB6 JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3D76 JUMPI PUSH2 0x3D76 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D99 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP PUSH2 0x3E04 JUMP JUMPDEST DUP2 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3DC9 JUMPI PUSH2 0x3DC9 PUSH2 0x5970 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3DEB SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP2 POP JUMPDEST PUSH1 0x1 SWAP6 SWAP1 SWAP6 SHR SWAP5 DUP1 PUSH2 0x3E15 DUP2 PUSH2 0x59E9 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x3D50 JUMP JUMPDEST POP SWAP1 SWAP6 EQ SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x3E33 JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x455259CB 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 0x3E93 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 0x3EB7 SWAP2 SWAP1 PUSH2 0x5D38 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3EC3 PUSH2 0x4B76 JUMP JUMPDEST PUSH2 0x3ECF SWAP2 POP PUSH1 0x10 PUSH2 0x5D51 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 GAS DUP6 PUSH2 0x3EE2 DUP5 PUSH3 0x186A0 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x3EEC SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x3EF6 SWAP2 SWAP1 PUSH2 0x5959 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH2 0x3F26 PUSH32 0x0 DUP3 PUSH2 0x5908 JUMP JUMPDEST PUSH2 0x3F30 DUP5 DUP8 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F3A SWAP2 SWAP1 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F44 SWAP2 SWAP1 PUSH2 0x5D70 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH32 0x0 PUSH2 0x3F75 DUP6 DUP9 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F7F SWAP2 SWAP1 PUSH2 0x5D51 JUMP JUMPDEST PUSH2 0x3F89 SWAP2 SWAP1 PUSH2 0x5D70 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3F9D SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP DUP3 SWAP1 POP PUSH1 0xC9 PUSH1 0x0 PUSH2 0x3FB0 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3FDF SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0xCF PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3FF8 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x65 SSTORE JUMP JUMPDEST PUSH1 0x2 DUP4 SLOAD PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x4025 JUMPI PUSH2 0x4025 PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x405C JUMPI PUSH1 0x40 MLOAD PUSH32 0xCB6F6AE400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x4077 SWAP2 SWAP1 PUSH2 0x5DF0 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP5 PUSH1 0x80 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x40C4 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x21F8A72100000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x4127 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x4162 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 0x4167 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x41A3 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDA45F5F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x41B9 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO PUSH2 0x42D3 JUMPI PUSH1 0xCD SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x41E6 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xDC12392BC0B29F679BA6E7C5F560DD5735A9909EE29C4B345EF19DF2C623B1B0 DUP8 DUP12 PUSH1 0x40 MLOAD PUSH2 0x421F SWAP3 SWAP2 SWAP1 PUSH2 0x5E2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6E74726163744465706C6F796D656E74536B697070656400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x42B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x42CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1834 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP9 PUSH1 0x0 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x4316 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5E4F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC7AEEF0F00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x4379 SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x43B4 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 0x43B9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x43D0 SWAP2 SWAP1 PUSH2 0x5E78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH2 0x43FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC71 SWAP2 SWAP1 PUSH2 0x51B8 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x4414 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x4544 JUMPI PUSH1 0xCD SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x40 MLOAD PUSH2 0x444A SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xA5F92178A767E4250CB11280DA2B868AF52F7DBE6194258920D017E1D30CD779 DUP11 DUP16 PUSH1 0x60 ADD MLOAD DUP14 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x4490 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5EBD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436F6E74726163744465706C6F79656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x453B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x46ED JUMP JUMPDEST PUSH32 0x0 PUSH1 0xC9 PUSH1 0x0 PUSH2 0x4571 PUSH2 0x9A0 JUMP JUMPDEST 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 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x45A0 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0xCE PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x45D9 SWAP2 SWAP1 PUSH2 0x5908 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xCD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH2 0x45FA SWAP1 DUP11 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0xB56435B217B7B283698159B613DF8B2B5D3C9EB8A9CF2ABD2762D0B9D08C098B DUP11 DUP15 PUSH1 0x40 MLOAD PUSH2 0x4633 SWAP3 SWAP2 SWAP1 PUSH2 0x5E2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF52CC7FD PUSH1 0xCD SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x467F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46AA SWAP2 SWAP1 PUSH2 0x5EE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x0 PUSH1 0xCD SSTORE POP POP DUP12 SLOAD PUSH1 0xFF NOT AND PUSH1 0x6 OR DUP13 SSTORE JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x4 OR DUP2 SSTORE PUSH2 0x470E PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0x745F3F165A11892E95C826E15A0E3F1EDEBD0C600775D4E34E41D08F0C73ECF2 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E74436F6D706C65746564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x47D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x47E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x0 PUSH1 0xCD SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP4 MLOAD PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x480A JUMPI PUSH2 0x480A PUSH2 0x4ED4 JUMP JUMPDEST EQ PUSH2 0x4841 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB38CBA4800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x72C6838F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP2 PUSH4 0x72C6838F SWAP2 PUSH2 0x48B0 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x48CD 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 0x48F1 SWAP2 SWAP1 PUSH2 0x5920 JUMP JUMPDEST SWAP1 POP PUSH32 0x1579D012EAD512DCB248C91571FA46AAA0F3399F8D3E1098FAC22575DB2ED693 DUP4 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x4950 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC0E6F38000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x496D SWAP2 SWAP1 PUSH2 0x5F29 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x40 ADD MLOAD DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x499A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F7F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9BC6EE9A00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x49FD SWAP2 SWAP1 PUSH2 0x593D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x4A38 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 0x4A3D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x4A78 JUMPI PUSH1 0x40 MLOAD PUSH32 0xAC5785A500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A80 PUSH2 0x9A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xCD SLOAD PUSH32 0x572CA77D05D5995D2382E9E3B5F4819A396A2B7914DD3CB9A81070B9DBE1E2F5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x4ACB SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x40 MLOAD PUSH4 0xEA0A5237 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53657450726F787953746F726167650000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEA0A5237 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4B62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 PUSH2 0x4B81 PUSH2 0x4D78 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4006 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 0xC71 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4C83 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 0xC71 JUMP JUMPDEST PUSH2 0x13C2 PUSH2 0x4C8E PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x398D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x4D0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C69625F4D65726B6C65547265653A2043616E6E6F7420636F6D707574652063 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x65696C286C6F675F3229206F6620302E00000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xC71 JUMP JUMPDEST DUP2 PUSH1 0x1 SUB PUSH2 0x4D1A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH1 0x80 JUMPDEST PUSH1 0x1 DUP2 LT PUSH2 0x4D58 JUMPI DUP1 PUSH2 0x4D36 PUSH1 0x1 DUP1 DUP4 SHL PUSH2 0x5959 JUMP JUMPDEST SWAP1 SHL DUP4 AND ISZERO PUSH2 0x4D50 JUMPI PUSH2 0x4D49 DUP2 DUP4 PUSH2 0x5908 JUMP JUMPDEST SWAP3 DUP2 SHR SWAP3 SWAP2 POP JUMPDEST PUSH1 0x1 SHR PUSH2 0x4D20 JUMP JUMPDEST POP PUSH1 0x1 DUP2 SHL DUP5 EQ PUSH2 0x4D71 JUMPI PUSH2 0x4D6E PUSH1 0x1 DUP3 PUSH2 0x5908 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x4DC7 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH2 0x4DBA PUSH1 0x14 DUP3 PUSH2 0x5959 JUMP JUMPDEST SWAP3 PUSH2 0x4B81 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5FB0 JUMP JUMPDEST PUSH1 0x0 CALLDATASIZE PUSH2 0x4B81 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x4E64 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x4E35 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x4DF8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E62 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x4E35 JUMP JUMPDEST POP JUMPDEST POP PUSH2 0x4E70 SWAP3 SWAP2 POP PUSH2 0x4E74 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x4E70 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4E75 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4D71 DUP2 PUSH2 0x4E89 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4ECD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x4F13 JUMPI PUSH2 0x4F13 PUSH2 0x4ED4 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F49 JUMPI DUP2 MLOAD ISZERO ISZERO DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4F2B JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F6F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4F57 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2407 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x4F98 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4F54 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 PUSH2 0x4FBE PUSH1 0x20 DUP3 ADD DUP4 MLOAD PUSH2 0x4F03 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x160 DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x4FDC PUSH2 0x180 DUP6 ADD DUP4 PUSH2 0x4F17 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 PUSH2 0x503B DUP2 DUP8 ADD DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST DUP7 ADD MLOAD SWAP1 POP PUSH2 0x140 PUSH2 0x5050 DUP7 DUP3 ADD DUP4 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST DUP7 ADD MLOAD DUP6 DUP5 SUB PUSH1 0x1F NOT ADD DUP4 DUP8 ADD MSTORE SWAP1 POP PUSH2 0x506A DUP4 DUP3 PUSH2 0x4F80 JUMP JUMPDEST SWAP7 SWAP6 POP POP 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 0xA0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x50C6 JUMPI PUSH2 0x50C6 PUSH2 0x5074 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 0x50F5 JUMPI PUSH2 0x50F5 PUSH2 0x5074 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5117 JUMPI PUSH2 0x5117 PUSH2 0x5074 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 0x5136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5149 PUSH2 0x5144 DUP3 PUSH2 0x50FD JUMP JUMPDEST PUSH2 0x50CC JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x515E 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 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x518D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x51B0 DUP5 DUP3 DUP6 ADD PUSH2 0x5125 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x51D6 DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x51F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x51FB DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5212 DUP2 PUSH2 0x4E89 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5237 JUMPI PUSH2 0x5237 PUSH2 0x5074 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5252 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x5262 PUSH2 0x5144 DUP4 PUSH2 0x521D 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 0x5281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x5352 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x52A6 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP PUSH1 0xA0 DUP1 PUSH1 0x1F NOT DUP5 DUP14 SUB ADD SLT ISZERO PUSH2 0x52C1 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x52C9 PUSH2 0x50A3 JUMP JUMPDEST DUP8 DUP5 ADD CALLDATALOAD DUP4 DUP2 GT ISZERO PUSH2 0x52DB JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x52E9 DUP14 DUP11 DUP4 DUP9 ADD ADD PUSH2 0x5125 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x40 DUP1 DUP6 ADD CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0x5300 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x530E DUP15 DUP12 DUP4 DUP10 ADD ADD PUSH2 0x5125 JUMP JUMPDEST DUP11 DUP5 ADD MSTORE POP PUSH1 0x60 SWAP4 POP DUP4 DUP6 ADD CALLDATALOAD PUSH2 0x5324 DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP5 DUP2 ADD CALLDATALOAD PUSH2 0x5337 DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP3 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x5285 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x536E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x537E PUSH2 0x5144 DUP4 PUSH2 0x521D JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 DUP4 SHL DUP6 ADD DUP3 ADD SWAP3 DUP3 DUP3 ADD SWAP2 SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x539D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x5431 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53C1 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP9 ADD PUSH1 0x3F DUP2 ADD DUP11 SGT PUSH2 0x53D3 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP6 DUP2 ADD CALLDATALOAD PUSH1 0x40 PUSH2 0x53E5 PUSH2 0x5144 DUP4 PUSH2 0x521D JUMP JUMPDEST DUP3 DUP2 MSTORE SWAP2 DUP6 SHL DUP4 ADD DUP2 ADD SWAP2 DUP9 DUP2 ADD SWAP1 DUP14 DUP5 GT ISZERO PUSH2 0x5402 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST SWAP4 DUP3 ADD SWAP4 JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x5420 JUMPI DUP5 CALLDATALOAD DUP3 MSTORE SWAP4 DUP10 ADD SWAP4 SWAP1 DUP10 ADD SWAP1 PUSH2 0x5407 JUMP JUMPDEST DUP9 MSTORE POP POP POP SWAP4 DUP6 ADD SWAP4 POP DUP5 ADD PUSH2 0x53A1 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x544F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x545F PUSH2 0x5144 DUP4 PUSH2 0x521D 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 0x547E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x5352 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A3 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP PUSH1 0xA0 DUP1 PUSH1 0x1F NOT DUP5 DUP14 SUB ADD SLT ISZERO PUSH2 0x54BE JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x54C6 PUSH2 0x50A3 JUMP JUMPDEST DUP8 DUP5 ADD CALLDATALOAD PUSH1 0x2 DUP2 LT PUSH2 0x54D8 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP5 DUP2 ADD CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0x54EE JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x54FC DUP15 DUP12 DUP4 DUP10 ADD ADD PUSH2 0x5125 JUMP JUMPDEST DUP11 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH2 0x550E DUP2 DUP8 ADD PUSH2 0x51CB JUMP JUMPDEST DUP3 DUP5 ADD MSTORE PUSH1 0x80 SWAP2 POP DUP2 DUP7 ADD CALLDATALOAD DUP2 DUP5 ADD MSTORE POP DUP3 DUP6 ADD CALLDATALOAD SWAP3 POP DUP4 DUP4 GT ISZERO PUSH2 0x5533 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x5541 DUP14 DUP11 DUP6 DUP9 ADD ADD PUSH2 0x5125 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP7 MSTORE POP POP POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x5482 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5566 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x5576 PUSH2 0x5144 DUP4 PUSH2 0x521D 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 0x5595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x5352 JUMPI DUP1 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x5599 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x55C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x55E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55EC DUP10 DUP4 DUP11 ADD PUSH2 0x5241 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x560E DUP10 DUP4 DUP11 ADD PUSH2 0x535D JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5630 DUP10 DUP4 DUP11 ADD PUSH2 0x543E JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5652 DUP10 DUP4 DUP11 ADD PUSH2 0x5555 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5668 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5675 DUP9 DUP3 DUP10 ADD PUSH2 0x535D 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 0x5695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x56AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x56B9 DUP7 DUP4 DUP8 ADD PUSH2 0x5241 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x56CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x56DC DUP6 DUP3 DUP7 ADD PUSH2 0x535D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x56FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x5713 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x571F DUP8 DUP4 DUP9 ADD PUSH2 0x543E JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5741 DUP8 DUP4 DUP9 ADD PUSH2 0x5555 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x5757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5764 DUP7 DUP3 DUP8 ADD PUSH2 0x535D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3534 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 0x5797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x57D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57DD DUP11 DUP3 DUP12 ADD PUSH2 0x5125 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH2 0x57EE DUP2 PUSH2 0x576E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5811 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x581C DUP2 PUSH2 0x4E89 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x582C DUP2 PUSH2 0x576E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x584B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD7E JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5899 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x58A4 DUP2 PUSH2 0x4E89 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 DUP7 ADD MLOAD SWAP2 SWAP5 POP SWAP3 POP PUSH2 0x5212 DUP2 PUSH2 0x576E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4D71 DUP2 PUSH2 0x576E JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x591B JUMPI PUSH2 0x591B PUSH2 0x58D9 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5932 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4D71 DUP2 PUSH2 0x4E89 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x594F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4F54 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x596B JUMPI PUSH2 0x596B PUSH2 0x58D9 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x59B2 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x4F80 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x59C4 DUP2 DUP9 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND PUSH1 0x40 DUP6 ADD MSTORE SWAP5 SWAP1 SWAP6 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x59FC JUMPI PUSH2 0x59FC PUSH2 0x58D9 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x17 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x546F67676C65644D616E6167656450726F706F73616C73000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5A5D PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x2 DUP7 LT PUSH2 0x5A7C JUMPI PUSH2 0x5A7C PUSH2 0x4ED4 JUMP JUMPDEST DUP6 PUSH1 0x40 DUP5 ADD MSTORE DUP5 PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x5A9A DUP2 DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 PUSH1 0x60 DUP3 ADD MSTORE DUP3 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5A9A PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2926 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x5AFE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1304 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x5B0A JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5B37 JUMPI PUSH2 0x5B37 PUSH2 0x5074 JUMP JUMPDEST PUSH2 0x5B4B DUP2 PUSH2 0x5B45 DUP5 SLOAD PUSH2 0x5837 JUMP JUMPDEST DUP5 PUSH2 0x5AD7 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5B80 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x5B68 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 0x1304 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5BAF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x5B90 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x5BCD 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 PUSH1 0x0 PUSH2 0x100 DUP11 DUP4 MSTORE DUP10 PUSH1 0x20 DUP5 ADD MSTORE DUP9 PUSH1 0x40 DUP5 ADD MSTORE DUP8 PUSH1 0x60 DUP5 ADD MSTORE DUP7 PUSH1 0x80 DUP5 ADD MSTORE DUP1 PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x5C0F DUP2 DUP5 ADD DUP8 PUSH2 0x4F80 JUMP JUMPDEST SWAP5 ISZERO ISZERO PUSH1 0xC0 DUP5 ADD MSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0xE0 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x1C PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x4368756753706C6173684465706C6F796D656E7450726F706F73656400000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0xB PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x50726F706F736572536574000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5CD6 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4F80 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5CE8 DUP2 DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0xD PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x50726F7879557067726164656400000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x5D6B JUMPI PUSH2 0x5D6B PUSH2 0x58D9 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5DA6 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5DBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x5DCA PUSH2 0x5144 DUP3 PUSH2 0x50FD JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x5DDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x51B0 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4F54 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5E03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD SWAP2 POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5E21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x56DC DUP6 DUP3 DUP7 ADD PUSH2 0x5DAB JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5E40 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x5E68 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x4F80 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4661696C656420746F206465706C6F793A200000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x5EB0 DUP2 PUSH1 0x12 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4F54 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5ED0 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x40 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x10 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x4465706C6F796D656E744661696C656400000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D71 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5F3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x5F56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5F73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5764 DUP7 DUP3 DUP8 ADD PUSH2 0x5DAB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x506A PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4F80 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x5FC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x5FCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"2320:48046:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13205:9;13191:12;:10;:12::i;:::-;-1:-1:-1;;;;;13178:37:31;;;;;;;;;;;13225:33;;-1:-1:-1;;;13225:33:31;;216:2:61;13225:33:31;;;198:21:61;255:2;235:18;;;228:30;294:14;274:18;;;267:42;13225:8:31;-1:-1:-1;;;;;13225:17:31;;;;326:18:61;;13225:33:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2320:48046;;;;3388:55;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;547:55:61;;;529:74;;517:2;502:18;3388:55:31;;;;;;;;5676:41;;;;;;;;;;-1:-1:-1;5676:41:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1286:14:61;;1279:22;1261:41;;1249:2;1234:18;5676:41:31;1121:187:61;4189:40:31;;;;;;;;;;;;;;;;;;1459:25:61;;;1447:2;1432:18;4189:40:31;1313:177:61;29288:142:31;;;;;;;;;;-1:-1:-1;29288:142:31;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13759:467::-;;;;;;;;;;-1:-1:-1;13759:467:31;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23137:708::-;;;;;;;;;;;;;:::i;21740:1022::-;;;;;;;;;;;;;:::i;1011:132:40:-;;;;;;;;;;;;;:::i;:::-;;;;6860:13:61;;6842:32;;6930:4;6918:17;;;6912:24;6890:20;;;6883:54;6981:17;;;6975:24;6953:20;;;6946:54;6830:2;6815:18;1011:132:40;6646:360:61;627:136:6;;;;;;;;;;-1:-1:-1;627:136:6;;;;;:::i;:::-;739:17;-1:-1:-1;;;;;726:30:6;;;;;;;627:136;40576:207:31;;;;;;;;;;-1:-1:-1;40576:207:31;;;;;:::i;:::-;40649:7;40705:27;;;:12;:27;;;;;40749;;;-1:-1:-1;;;;;40749:27:31;;40576:207;2064:101:5;;;;;;;;;;;;;:::i;5384:47:31:-;;;;;;;;;;-1:-1:-1;5384:47:31;;;;;:::i;:::-;;;;;;;;;;;;;;39729:241;;;;;;;;;;-1:-1:-1;39729:241:31;;;;;:::i;:::-;;:::i;5187:50::-;;;;;;;;;;;;;;;25950:1027;;;;;;;;;;-1:-1:-1;25950:1027:31;;;;;:::i;:::-;;:::i;24403:1004::-;;;;;;;;;;-1:-1:-1;24403:1004:31;;;;;:::i;:::-;;:::i;3158:45::-;;;;;;;;;;;;;;;1441:85:5;;;;;;;;;;-1:-1:-1;1513:6:5;;-1:-1:-1;;;;;1513:6:5;1441:85;;20524:547:31;;;;;;;;;;-1:-1:-1;20524:547:31;;;;;:::i;:::-;;:::i;33448:3016::-;;;;;;;;;;-1:-1:-1;33448:3016:31;;;;;:::i;:::-;;:::i;28398:334::-;;;;;;;;;;;;;:::i;30101:2654::-;;;;;;;;;;-1:-1:-1;30101:2654:31;;;;;:::i;:::-;;:::i;18980:825::-;;;;;;;;;;-1:-1:-1;18980:825:31;;;;;:::i;:::-;;:::i;15317:1880::-;;;;;;;;;;-1:-1:-1;15317:1880:31;;;;;:::i;:::-;;:::i;3274:32::-;;;;;;;;;;;;;;;6334;;;;;;;;;;;;;;;;6184;;;;;;;;;;;;;;;;6038:33;;;;;;;;;;;;;;;;29490:108;;;;;;;;;;-1:-1:-1;29559:18:31;;:32;;29490:108;;27984:274;;;;;;;;;;-1:-1:-1;27984:274:31;;;;;:::i;:::-;;:::i;6543:33::-;;;;;;;;;;-1:-1:-1;6543:33:31;;;;;;;;5932:29;;;;;;;;;;;;;;;;4724:50;;;;;;;;;;;;;;;36836:2652;;;;;;;;;;-1:-1:-1;36836:2652:31;;;;;:::i;:::-;;:::i;3521:46::-;;;;;;;;;;;;;;;2314:198:5;;;;;;;;;;-1:-1:-1;2314:198:5;;;;;:::i;:::-;;:::i;27242:487:31:-;;;;;;;;;;;;;:::i;40153:112::-;;;;;;;;;;;;;:::i;17550:1057::-;;;;;;;;;;-1:-1:-1;17550:1057:31;;;;;:::i;:::-;;:::i;4371:42::-;;;;;;;;;;;;;;;49822:217;49955:14;49994:38;:36;:38::i;:::-;49985:47;;49822:217;:::o;29288:142::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29396:27:31;;;;:12;:27;;;;;;;29389:34;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;29389:34:31;;;-1:-1:-1;;29389:34:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29389:34:31;;;;;;-1:-1:-1;;;29389:34:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29288:142;;;:::o;13759:467::-;3279:19:7;3302:13;13829:12:31;;3302:13:7;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:7;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:7;1713:19:9;:23;;;3387:66:7;;-1:-1:-1;3436:12:7;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:7;;20716:2:61;3325:201:7;;;20698:21:61;20755:2;20735:18;;;20728:30;20794:34;20774:18;;;20767:62;20865:16;20845:18;;;20838:44;20899:19;;3325:201:7;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:7;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;;;;;;;3562:65;13854:14:31::1;13870:23:::0;13895:27:::1;13950:5;13926:77;;;;;;;;;;;;:::i;:::-;14014:14;:32:::0;;;14056:21:::1;:46:::0;;-1:-1:-1;;14056:46:31::1;::::0;::::1;;;::::0;;13853:150;;-1:-1:-1;14014:32:31;-1:-1:-1;14056:46:31;-1:-1:-1;14113:24:31::1;:22;:24::i;:::-;14147:16;:14;:16::i;:::-;14173:26;14192:6;14173:18;:26::i;:::-;14210:9;;;;;;;;;;;::::0;::::1;;;;;3651:14:7::0;3647:99;;;3697:5;3681:21;;;;;;3721:14;;-1:-1:-1;21534:36:61;;3721:14:7;;21522:2:61;21507:18;3721:14:7;;;;;;;3647:99;3269:483;13759:467:31;;;:::o;23137:708::-;11062:14;-1:-1:-1;;;;;11062:22:31;;2643:33;11107:12;:10;:12::i;:::-;11062:58;;;;;;;;;;;;;21755:25:61;;;;-1:-1:-1;;;;;21816:55:61;21796:18;;;21789:83;21728:18;;11062:58:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11057:124;;11143:27;;;;;;;;;;;;;;11057:124;23200:18:::1;::::0;23196:90:::1;;23255:20;;;;;;;;;;;;;;23196:90;23346:18;::::0;23296:34:::1;23333:32:::0;;;:12:::1;:32;::::0;;;;23381:26:::1;::::0;::::1;::::0;-1:-1:-1;;;23381:26:31;::::1;;;23376:90;;23430:25;;;;;;;;;;;;;;23376:90;23524:17;23499:10;:22;;;:42;;;;:::i;:::-;23480:15;:61;23476:125;;23564:26;;;;;;;;;;;;;;23476:125;23636:15;23611:22;::::0;::::1;:40:::0;23691:12:::1;:10;:12::i;:::-;23661:27;::::0;::::1;:42:::0;;;::::1;-1:-1:-1::0;;;;;23661:42:31;;;::::1;::::0;;;::::1;::::0;;23767:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;23719:61:31::1;23747:18;;23719:61;;;;;;;;;;23790:48;::::0;-1:-1:-1;;;23790:48:31;;22657:2:61;23790:48:31::1;::::0;::::1;22639:21:61::0;22696:2;22676:18;;;22669:30;22735:29;22715:18;;;22708:57;23790:8:31::1;-1:-1:-1::0;;;;;23790:17:31::1;::::0;::::1;::::0;22782:18:61;;23790:48:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23186:659;23137:708::o:0;21740:1022::-;1334:13:5;:11;:13::i;:::-;21817:18:31::1;::::0;21813:90:::1;;21872:20;;;;;;;;;;;;;;21813:90;21963:18;::::0;21913:34:::1;21950:32:::0;;;:12:::1;:32;::::0;;;;22010:26:::1;::::0;::::1;::::0;-1:-1:-1;;;22010:26:31;::::1;;;:103:::0;::::1;;;;22098:15;22077:17;22052:10;:22;;;:42;;;;:::i;:::-;:61;;22010:103;21993:389;;;22306:15;22276:12;:26;22289:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;22276:26:31::1;-1:-1:-1::0;;;;;22276:26:31::1;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;22356:15;22335:17;;:36;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21993:389:31::1;22424:18;::::0;;22392:29:::1;22452:31:::0;;;22493:46;;-1:-1:-1;;22493:46:31::1;22513:26;22493:46;::::0;;22633:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;22555:140:31::1;22598:21;22555:140;22659:10;:26;;;22555:140;;;;1459:25:61::0;;1447:2;1432:18;;1313:177;22555:140:31::1;;;;;;;;22705:50;::::0;-1:-1:-1;;;22705:50:31;;23013:2:61;22705:50:31::1;::::0;::::1;22995:21:61::0;23052:2;23032:18;;;23025:30;23091:31;23071:18;;;23064:59;22705:8:31::1;-1:-1:-1::0;;;;;22705:17:31::1;::::0;::::1;::::0;23140:18:61;;22705:50:31::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21803:959;;21740:1022::o:0;1011:132:40:-;1051:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1051:14:40;1084:52;;;;;;;;1092:13;1084:52;;;;1107:13;1084:52;;;;1122:13;1084:52;;;1077:59;;1011:132;:::o;2064:101:5:-;1334:13;:11;:13::i;:::-;2128:30:::1;2155:1;2128:18;:30::i;:::-;2064:101::o:0;39729:241:31:-;39821:21;;39785:4;;39821:21;;:77;;;;-1:-1:-1;39846:52:31;;;;;2838:34;39846:52;;;21755:25:61;-1:-1:-1;;;;;21816:55:61;;;21796:18;;;21789:83;39846:14:31;:22;;;;21728:18:61;;39846:52:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39820:111;;;-1:-1:-1;;;;;;39915:16:31;;;;;;:9;:16;;;;;;;;39820:111;:143;;;-1:-1:-1;1513:6:5;;-1:-1:-1;;;;;39947:16:31;;;1513:6:5;;39947:16:31;39820:143;39801:162;39729:241;-1:-1:-1;;39729:241:31:o;25950:1027::-;1334:13:5;:11;:13::i;:::-;26104:6:31::1;-1:-1:-1::0;;;;;26104:18:31::1;;26126:1;26104:23:::0;26100:83:::1;;26150:22;;;;;;;;;;;;;;26100:83;26197:18;::::0;:32;26193:99:::1;;26252:29;;;;;;;;;;;;;;26193:99;26387:36;::::0;;;;::::1;::::0;::::1;1459:25:61::0;;;26369:15:31::1;::::0;26387:8:::1;-1:-1:-1::0;;;;;26387:17:31::1;::::0;::::1;::::0;1432:18:61;;26387:36:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26369:54:::0;-1:-1:-1;;;;;;26437:21:31;::::1;26433:80;;26481:21;;;;;;;;;;;;;;26433:80;26528:51;::::0;-1:-1:-1;;;;;547:55:61;;;529:74;;26550:17:31;;26528:51;;::::1;::::0;::::1;::::0;517:2:61;502:18;26528:51:31::1;;;;;;;26774:67;::::0;-1:-1:-1;;;;;23694:15:61;;;26774:67:31::1;::::0;::::1;23676:34:61::0;23746:15;;;23726:18;;;23719:43;26722:12:31::1;::::0;26740:20;;::::1;::::0;23588:18:61;;26774:67:31::1;::::0;;-1:-1:-1;;26774:67:31;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;::::0;::::1;::::0;;26740:111;::::1;::::0;26774:67;26740:111:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26721:130;;;26866:7;26861:65;;26896:19;;;;;;;;;;;;;;26861:65;26936:34;::::0;-1:-1:-1;;;26936:34:31;;24254:2:61;26936:34:31::1;::::0;::::1;24236:21:61::0;24293:2;24273:18;;;24266:30;24332:15;24312:18;;;24305:43;26936:8:31::1;-1:-1:-1::0;;;;;26936:17:31::1;::::0;::::1;::::0;24365:18:61;;26936:34:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26090:887;;25950:1027:::0;;;:::o;24403:1004::-;11062:14;-1:-1:-1;;;;;11062:22:31;;2643:33;11107:12;:10;:12::i;:::-;11062:58;;;;;;;;;;;;;21755:25:61;;;;-1:-1:-1;;;;;21816:55:61;21796:18;;;21789:83;21728:18;;11062:58:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11057:124;;11143:27;;;;;;;;;;;;;;11057:124;24486:7:::1;24497:1;24486:12:::0;24482:79:::1;;24521:29;;;;;;;;;;;;;;24482:79;24603:7;24574:12;:26;24587:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;24574:26:31::1;-1:-1:-1::0;;;;;24574:26:31::1;;;;;;;;;;;;;:36;24570:100;;;24633:26;;;;;;;;;;;;;;24570:100;24713:21;24693:17;;24683:7;:27;;;;:::i;:::-;:51;24679:108;;;24757:19;;;;;;;;;;;;;;24679:108;24827:7;24797:12;:26;24810:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;24797:26:31::1;-1:-1:-1::0;;;;;24797:26:31::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;24865:7;24844:17;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;24911:12:31::1;::::0;-1:-1:-1;24911:10:31::1;:12::i;:::-;-1:-1:-1::0;;;;;24888:73:31::1;;24925:7;24934:12;:26;24947:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;24934:26:31::1;-1:-1:-1::0;;;;;24934:26:31::1;;;;;;;;;;;;;24888:73;;;;;;24698:25:61::0;;;24754:2;24739:18;;24732:34;24686:2;24671:18;;24524:248;24888:73:31::1;;;;;;;;24973:17;25004:12;:10;:12::i;:::-;25041;::::0;;25051:1:::1;25041:12:::0;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;24996:26:31;;;::::1;::::0;25031:7;;24996:58:::1;::::0;25041:12;24996:58:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24972:82;;;25069:12;25064:69;;25104:18;;;;;;;;;;;;;;25064:69;25213:17;::::0;25246:12:::1;::::0;;25144:17:::1;25246:12:::0;;;::::1;::::0;::::1;::::0;;;;25144:17;-1:-1:-1;;;;;25183:14:31::1;25167:37;::::0;25213:17;;25167:101:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25143:125;;;25283:12;25278:69;;25318:18;;;;;;;;;;;;;;25278:69;25357:43;::::0;-1:-1:-1;;;25357:43:31;;24979:2:61;25357:43:31::1;::::0;::::1;24961:21:61::0;25018:2;24998:18;;;24991:30;25057:24;25037:18;;;25030:52;25357:8:31::1;-1:-1:-1::0;;;;;25357:17:31::1;::::0;::::1;::::0;25099:18:61;;25357:43:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24472:935;;24403:1004:::0;:::o;20524:547::-;20795:40;20811:8;20821:13;20795:15;:40::i;:::-;20913:15;;:19;20909:105;;20948:55;20963:8;20973:14;20989:13;20948:14;:55::i;:::-;21024:40;21040:8;21050:13;21024:15;:40::i;33448:3016::-;2505:21:8;:19;:21::i;:::-;33589:22:31::1;33614:9;33684:18;::::0;33634:34:::1;33671:32:::0;;;:12:::1;:32;::::0;;;;33753:26:::1;::::0;::::1;::::0;33589:34;;-1:-1:-1;33671:32:31;33714:66:::1;::::0;-1:-1:-1;;;33753:26:31;::::1;;;33714:38;:66::i;:::-;33825:10;:32;;;33795:10;:26;;;:62;33791:126;;33880:26;;;;;;;;;;;;;;33791:126;34014:25;33993:17:::0;;::::1;;:46;::::0;::::1;;;;;;:::i;:::-;;33989:109;;34062:25;;;;;;;;;;;;;;33989:109;34129:15:::0;;34172:18:::1;::::0;::::1;::::0;34158:32;::::1;34154:96;;34213:26;;;;;;;;;;;;;;34154:96;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34300:22:31::1;34337:9;34332:1825;34356:10;34352:1;:14;34332:1825;;;34396:8;34405:1;34396:11;;;;;;;;:::i;:::-;;;;;;;34387:20;;34429:7;34437:1;34429:10;;;;;;;;:::i;:::-;;;;;;;34421:18;;3063:22;34458:6;:23;;;:55:::0;34454:121:::1;;34540:20;;;;;;;;;;;;;;34454:121;34611:526;34650:10;:21;;;34768:6;:18;;;34816:6;:20;;;34866:6;:11;;;34907:6;:21;;;34958:6;:23;;;34728:279;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;34693:336;;;;;;35051:1;35074:5;35101:10;:18;;;34611:17;:526::i;:::-;34589:623;;35177:20;;;;;;;;;;;;;;34589:623;35262:23;::::0;::::1;::::0;35244:42:::1;::::0;;;;35226:15:::1;::::0;-1:-1:-1;;;;;35244:8:31::1;:17;::::0;::::1;::::0;:42:::1;::::0;::::1;;1459:25:61::0;;;1447:2;1432:18;;1313:177;35244:42:31::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35226:60:::0;-1:-1:-1;;;;;;35304:21:31;::::1;35300:88;;35352:21;;;;;;;;;;;;;;35300:88;36027:11;::::0;;::::1;::::0;35980:60;;-1:-1:-1;;;;;547:55:61;;;35980:60:31::1;::::0;::::1;529:74:61::0;35924:12:31::1;::::0;35942:20;::::1;::::0;502:18:61;;35980:60:31::1;::::0;;-1:-1:-1;;35980:60:31;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;::::0;::::1;::::0;;35942:112;::::1;::::0;35980:60;35942:112:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35923:131;;;36073:7;36068:79;;36107:25;;;;;;;;;;;;;;36068:79;34373:1784;;34368:3;;;;;:::i;:::-;;;;34332:1825;;;-1:-1:-1::0;36212:54:31;;-1:-1:-1;;36212:54:31::1;36232:34;36212:54;::::0;;36319:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;36282:50:31::1;36299:18;;36282:50;;;;;;;;;;36342:37;::::0;-1:-1:-1;;;36342:37:31;;26665:2:61;36342:37:31::1;::::0;::::1;26647:21:61::0;26704:2;26684:18;;;26677:30;26743:18;26723;;;26716:46;36342:8:31::1;-1:-1:-1::0;;;;;36342:17:31::1;::::0;::::1;::::0;26779:18:61;;36342:37:31::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;36430:26:31::1;::::0;::::1;::::0;36390:67:::1;::::0;36414:14;;-1:-1:-1;;;36430:26:31;::::1;;;36390:23;:67::i;:::-;33579:2885;;;;;2547:20:8::0;1787:1;3053:7;:22;2873:209;2547:20;33448:3016:31;;:::o;28398:334::-;1334:13:5;:11;:13::i;:::-;28491:21:31::1;::::0;;-1:-1:-1;;28466:46:31;::::1;28491:21;::::0;;::::1;28490:22;28466:46;::::0;;28575:12:::1;:10;:12::i;:::-;28552:21;::::0;28528:60:::1;::::0;28552:21:::1;::::0;;::::1;1286:14:61::0;1279:22;1261:41;;-1:-1:-1;;;;;28528:60:31;;;::::1;::::0;::::1;::::0;1249:2:61;1234:18;28528:60:31::1;;;;;;;28693:21;::::0;28676:39:::1;::::0;;28693:21:::1;::::0;;::::1;26959:14:61::0;26952:22;26947:3;26943:32;28676:39:31::1;::::0;::::1;26931:45:61::0;28676:39:31;;;;;;;;;26992:11:61;;;28676:39:31;;;;28598:127;;;;-1:-1:-1;;;;;28598:8:31::1;:25;::::0;::::1;::::0;:127:::1;::::0;;;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28398:334::o:0;30101:2654::-;2505:21:8;:19;:21::i;:::-;30285:22:31::1;30310:9;30380:18;::::0;30330:34:::1;30367:32:::0;;;:12:::1;:32;::::0;;;;30449:26:::1;::::0;::::1;::::0;30285:34;;-1:-1:-1;30367:32:31;30410:66:::1;::::0;-1:-1:-1;;;30449:26:31;::::1;;;30410:38;:66::i;:::-;30508:15:::0;;30487:18:::1;30697:15:::0;;;30693:72:::1;;30735:19;;;;;;;;;;;;;;30693:72;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30818:19:31::1;30847:22;30884:9;30879:1792;30903:10;30899:1;:14;30879:1792;;;30943:8;30952:1;30943:11;;;;;;;;:::i;:::-;;;;;;;30934:20;;30982:14;30997:1;30982:17;;;;;;;;:::i;:::-;;;;;;;30968:31;;31021:7;31029:1;31021:10;;;;;;;;:::i;:::-;;;;;;;31013:18;;31050:10;:18;;31069:11;31050:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;31046:100;;;31108:23;;;;;;;;;;;;;;31046:100;31182:532;31221:10;:21;;;31339:6;:20;;;31389:6;:11;;;31430:6;:17;;;31477:6;:23;;;31530:6;:11;;;31299:268;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;31264:325;;;;;;31611:11;31644:5;31671:10;:18;;:25;;;;31182:17;:532::i;:::-;31160:629;;31754:20;;;;;;;;;;;;;;31160:629;31895:26;::::0;::::1;:28:::0;;;:26:::1;:28;::::0;::::1;:::i;:::-;;;;;;31971:4;31937:10;:18;;31956:11;31937:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;32015:36;31994:57:::0;::::1;;;;;;;:::i;:::-;:17:::0;;:57:::1;::::0;::::1;;;;;;:::i;:::-;::::0;31990:671:::1;;32071:59;32098:10;32110:6;32118:11;32071:26;:59::i;:::-;32204:18;::::0;::::1;:25:::0;32174:26:::1;::::0;::::1;::::0;:55:::1;:102:::0;::::1;;;-1:-1:-1::0;32253:18:31::1;::::0;::::1;::::0;:23;32174:102:::1;:170;;;;-1:-1:-1::0;32321:23:31::1;32300:17:::0;;::::1;;:44;::::0;::::1;;;;;;:::i;:::-;;;32174:170;32149:286;;;32385:31;32405:10;32385:19;:31::i;:::-;31990:671;;;32480:32;32459:17:::0;;:53:::1;::::0;::::1;;;;;;:::i;:::-;::::0;32455:206:::1;;32532:49;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;32549:10;;32532:49;;::::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;::::1;;;;;::::0;;::::1;;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;;;;;;-1:-1:-1::0;;;32532:49:31;;;-1:-1:-1;;32532:49:31::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;-1:-1:-1;;;;;32532:49:31;::::1;::::0;;;;-1:-1:-1;;;32532:49:31;::::1;;;;;;::::0;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;32561:6;32569:11;32532:16;:49::i;32455:206::-;32627:19;;;;;;;;;;;;;;32455:206;30915:3:::0;::::1;::::0;::::1;:::i;:::-;;;;30879:1792;;;-1:-1:-1::0;32721:26:31::1;::::0;::::1;::::0;32681:67:::1;::::0;32705:14;;-1:-1:-1;;;32721:26:31;::::1;;;32681:23;:67::i;:::-;30275:2480;;;;;;2547:20:8::0;1787:1;3053:7;:22;2873:209;2547:20;30101:2654:31;;;:::o;18980:825::-;1334:13:5;:11;:13::i;:::-;19049:34:31::1;19086:27:::0;;;:12:::1;:27;::::0;;;;19141:26:::1;::::0;::::1;::::0;-1:-1:-1;;;19141:26:31;::::1;;;:77:::0;::::1;;;;19207:11;:9;:11::i;:::-;19183:21;:35;19141:77;:146;;;;;19272:15;19258:11;:9;:11::i;:::-;19234:35;::::0;:21:::1;:35;:::i;:::-;:53;19141:146;19124:229;;;19319:23;;;;;;;;;;;;;;19124:229;19388:25;19367:17:::0;;::::1;;:46;::::0;::::1;;;;;;:::i;:::-;;19363:109;;19436:25;;;;;;;;;;;;;;19363:109;19486:18;::::0;:32;19482:99:::1;;19541:29;;;;;;;;;;;;;;19482:99;19591:18;:34:::0;;;19635:45;;-1:-1:-1;;19635:45:31::1;19655:25;19635:45;::::0;;19696:43:::1;::::0;19591:34;;19696:43:::1;::::0;-1:-1:-1;;19696:43:31::1;19749:49;::::0;-1:-1:-1;;;19749:49:31;;28430:2:61;19749:49:31::1;::::0;::::1;28412:21:61::0;28469:2;28449:18;;;28442:30;28508;28488:18;;;28481:58;19749:8:31::1;-1:-1:-1::0;;;;;19749:17:31::1;::::0;::::1;::::0;28556:18:61;;19749:49:31::1;28228:352:61::0;15317:1880:31;15583:24;15594:12;:10;:12::i;15583:24::-;15578:84;;15630:21;;;;;;;;;;;;;;15578:84;15710:20;15784:11;15813;15842;15871;15900:22;15940:10;15756:208;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;15756:208:31;;;;;;;;;15733:241;;15756:208;15733:241;;;;15985:34;16022:26;;;:12;:26;;;;;;16085:17;;15733:241;;-1:-1:-1;16022:26:31;16085:17;;;;;16129:6;:32;;;;;;;;:::i;:::-;;;:84;;;;-1:-1:-1;16187:26:31;16177:6;:36;;;;;;;;:::i;:::-;;;16129:84;:136;;;;-1:-1:-1;16239:26:31;16229:6;:36;;;;;;;;:::i;:::-;;;16129:136;:185;;;;-1:-1:-1;16291:23:31;16281:6;:33;;;;;;;;:::i;:::-;;;16129:185;16112:277;;;16346:32;;;;;;;;;;;;;;16112:277;16399:45;;-1:-1:-1;;16399:45:31;16419:25;16399:45;;;16454:21;;;:35;;;16499:21;;;:35;;;16544:32;;;:57;;;16643:11;16632:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16632:23:31;-1:-1:-1;16611:44:31;;;;:18;;;;:44;;;;;;:::i;:::-;-1:-1:-1;16665:18:31;;;:32;;;16707:26;;;:45;;;;-1:-1:-1;;;16707:45:31;;;;;;;16762:20;;;:33;16785:10;16762:20;:33;:::i;:::-;;16853:12;16811:280;16879:11;16904;16929;16954;16979:22;17015:10;17039:16;17069:12;:10;:12::i;:::-;16811:280;;;;;;;;;;;;;:::i;:::-;;;;;;;;17101:8;-1:-1:-1;;;;;17101:25:31;;17176:12;:10;:12::i;:::-;17159:30;;;;;;;32508:2:61;32504:15;;;;32521:66;32500:88;32488:101;;32614:2;32605:12;;32359:264;17159:30:31;;;;;;;;;;;;;17101:89;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15568:1629;;;15317:1880;;;;;;;:::o;27984:274::-;1334:13:5;:11;:13::i;:::-;-1:-1:-1;;;;;28071:20:31;::::1;;::::0;;;:9:::1;:20;::::0;;;;:34;;-1:-1:-1;;28071:34:31::1;::::0;::::1;;;::::0;;28157:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;28121:49:31::1;28144:11;28121:49;;28133:9;-1:-1:-1::0;;;;;28121:49:31::1;;;;;;;;;;;28180:8;-1:-1:-1::0;;;;;28180:25:31::1;;28238:11;28221:29;;;;;;26959:14:61::0;26952:22;26947:3;26943:32;26931:45;;27001:1;26992:11;;26808:201;28221:29:31::1;;;;;;;;;;;;;28180:71;;;;;;;;;;;;;;;:::i;36836:2652::-:0;2505:21:8;:19;:21::i;:::-;36977:22:31::1;37002:9;37072:18;::::0;37022:34:::1;37059:32:::0;;;:12:::1;:32;::::0;;;;37141:26:::1;::::0;::::1;::::0;36977:34;;-1:-1:-1;37059:32:31;37102:66:::1;::::0;-1:-1:-1;;;37141:26:31;::::1;;;37102:38;:66::i;:::-;37183:18;::::0;37179:90:::1;;37238:20;;;;;;;;;;;;;;37179:90;37313:18;::::0;::::1;:25:::0;37283:26:::1;::::0;::::1;::::0;:55:::1;37279:119;;37361:26;;;;;;;;;;;;;;37279:119;37429:15:::0;;37472:18:::1;::::0;::::1;::::0;37458:32;::::1;37454:96;;37513:26;;;;;;;;;;;;;;37454:96;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37600:22:31::1;37637:9;37632:1730;37656:10;37652:1;:14;37632:1730;;;37696:8;37705:1;37696:11;;;;;;;;:::i;:::-;;;;;;;37687:20;;37729:7;37737:1;37729:10;;;;;;;;:::i;:::-;;;;;;;37721:18;;3063:22;37758:6;:23;;;:55:::0;37754:121:::1;;37840:20;;;;;;;;;;;;;;37754:121;37911:526;37950:10;:21;;;38068:6;:18;;;38116:6;:20;;;38166:6;:11;;;38207:6;:21;;;38258:6;:23;;;38028:279;;;;;;;;;;;;:::i;37911:526::-;37889:623;;38477:20;;;;;;;;;;;;;;37889:623;38633:23;::::0;::::1;::::0;38615:42:::1;::::0;;;;38597:15:::1;::::0;-1:-1:-1;;;;;38615:8:31::1;:17;::::0;::::1;::::0;:42:::1;::::0;::::1;;1459:25:61::0;;;1447:2;1432:18;;1313:177;38615:42:31::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38597:60:::0;-1:-1:-1;;;;;;38675:21:31;::::1;38671:88;;38723:21;;;;;;;;;;;;;;38671:88;38834:12;38852:7;-1:-1:-1::0;;;;;38852:20:31::1;38937:6;:11;;;38950:6;:21;;;38890:83;;;;;;;;-1:-1:-1::0;;;;;23694:15:61;;;23676:34;;23746:15;;23741:2;23726:18;;23719:43;23603:2;23588:18;;23425:343;38890:83:31::1;;::::0;;-1:-1:-1;;38890:83:31;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;::::0;::::1;::::0;;38852:135;::::1;::::0;38890:83;38852:135:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38833:154;;;39006:7;39001:79;;39040:25;;;;;;;;;;;;;;39001:79;39165:6;:11;;;-1:-1:-1::0;;;;;39098:166:31::1;39129:18;;39098:166;39194:6;:18;;;39230:6;:20;;;39098:166;;;;;;;:::i;:::-;;;;;;;;39278:8;-1:-1:-1::0;;;;;39278:25:31::1;;39338:6;:11;;;39321:29;;;;;;;32508:2:61::0;32504:15;;;;32521:66;32500:88;32488:101;;32614:2;32605:12;;32359:264;39321:29:31::1;;;;;;;;;;;;;39278:73;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;37673:1689;;37668:3;;;;;:::i;:::-;;;;37632:1730;;;;39372:31;39392:10;39372:19;:31::i;:::-;39454:26;::::0;::::1;::::0;39414:67:::1;::::0;39438:14;;-1:-1:-1;;;39454:26:31;::::1;;;39414:23;:67::i;2314:198:5:-:0;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2402:22:5;::::1;2394:73;;;::::0;-1:-1:-1;;;2394:73:5;;34890:2:61;2394:73:5::1;::::0;::::1;34872:21:61::0;34929:2;34909:18;;;34902:30;34968:34;34948:18;;;34941:62;35039:8;35019:18;;;35012:36;35065:19;;2394:73:5::1;34688:402:61::0;2394:73:5::1;2477:28;2496:8;2477:18;:28::i;:::-;2314:198:::0;:::o;27242:487:31:-;1334:13:5;:11;:13::i;:::-;27303:18:31::1;::::0;:32;27299:99:::1;;27358:29;;;;;;;;;;;;;;27299:99;27408:14;27449:11;:9;:11::i;:::-;27425:35;::::0;:21:::1;:35;:::i;:::-;27408:52;;27493:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;27476:38:31::1;;27507:6;27476:38;;;;1459:25:61::0;;1447:2;1432:18;;1313:177;27476:38:31::1;;;;;;;;27526:12;27552;:10;:12::i;:::-;27588;::::0;;27598:1:::1;27588:12:::0;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;27544:26:31;;;::::1;::::0;27579:6;;27544:57:::1;::::0;27588:12;27544:57:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27525:76;;;27616:7;27611:64;;27646:18;;;;;;;;;;;;;;27611:64;27685:37;::::0;-1:-1:-1;;;27685:37:31;;35297:2:61;27685:37:31::1;::::0;::::1;35279:21:61::0;35336:2;35316:18;;;35309:30;35375:18;35355;;;35348:46;27685:8:31::1;-1:-1:-1::0;;;;;27685:17:31::1;::::0;::::1;::::0;35411:18:61;;27685:37:31::1;35095:340:61::0;40153:112:31;40195:7;40241:17;;40221;;:37;;;;:::i;17550:1057::-;17822:22;17847:9;17822:34;;17867:207;17888:11;17913;17938;17963;17988:22;18024:10;18048:16;17867:7;:207::i;:::-;18114:16;18133:18;-1:-1:-1;;;;;18133:30:31;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18114:51;;18221:23;18247:10;:8;:10::i;:::-;:22;;-1:-1:-1;18267:2:31;18247:22;:::i;:::-;18221:48;;18366:18;18432:9;18415:14;18387:25;18397:15;18387:7;:25;:::i;:::-;:42;;;;:::i;:::-;:54;;;;:::i;:::-;18366:75;-1:-1:-1;18451:20:31;18474:21;18366:75;18474:8;:21;:::i;:::-;18451:44;;18588:12;18567:17;;:33;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;;;;17550:1057:31:o;769:448:6:-;831:14;739:17;-1:-1:-1;;;;;726:30:6;880:10;726:30;857:354;;-1:-1:-1;1106:23:6;1110:14;1106:23;1093:37;1089:2;1085:46;769:448;:::o;857:354::-;-1:-1:-1;929:10:10;;49822:217:31:o;1868:111:8:-;5374:13:7;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:7;;36064:2:61;5366:69:7;;;36046:21:61;36103:2;36083:18;;;36076:30;36142:34;36122:18;;;36115:62;36213:13;36193:18;;;36186:41;36244:19;;5366:69:7;35862:407:61;5366:69:7;1938:34:8::1;:32;:34::i;1003:95:5:-:0;5374:13:7;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:7;;36064:2:61;5366:69:7;;;36046:21:61;36103:2;36083:18;;;36076:30;36142:34;36122:18;;;36115:62;36213:13;36193:18;;;36186:41;36244:19;;5366:69:7;35862:407:61;5366:69:7;1065:26:5::1;:24;:26::i;2666:187::-:0;2758:6;;;-1:-1:-1;;;;;2774:17:5;;;;;;;;;;;2806:40;;2758:6;;;2774:17;2758:6;;2806:40;;2739:16;;2806:40;2729:124;2666:187;:::o;1599:130::-;1673:12;:10;:12::i;:::-;-1:-1:-1;;;;;1662:23:5;:7;1513:6;;-1:-1:-1;;;;;1513:6:5;;1441:85;1662:7;-1:-1:-1;;;;;1662:23:5;;1654:68;;;;-1:-1:-1;;;1654:68:5;;36476:2:61;1654:68:5;;;36458:21:61;;;36495:18;;;36488:30;36554:34;36534:18;;;36527:62;36606:18;;1654:68:5;36274:356:61;2580:287:8;1830:1;2712:7;;:19;2704:63;;;;-1:-1:-1;;;2704:63:8;;36837:2:61;2704:63:8;;;36819:21:61;36876:2;36856:18;;;36849:30;36915:33;36895:18;;;36888:61;36966:18;;2704:63:8;36635:355:61;2704:63:8;1830:1;2842:7;:18;2580:287::o;49341:365:31:-;49460:4;49440:24;;;;:83;;;;;49511:12;:10;:12::i;:::-;-1:-1:-1;;;;;49468:55:31;:39;49488:18;;40649:7;40705:27;;;:12;:27;;;;;40749;;;-1:-1:-1;;;;;40749:27:31;;40576:207;49468:39;-1:-1:-1;;;;;49468:55:31;;;49440:83;49436:264;;;49546:29;;;;;;;;;;;;;;49436:264;49596:25;;;;:52;;;49636:12;:10;:12::i;:::-;-1:-1:-1;;;;;49625:23:31;:7;1513:6:5;;-1:-1:-1;;;;;1513:6:5;;1441:85;49625:7:31;-1:-1:-1;;;;;49625:23:31;;;49596:52;49592:108;;;49671:18;;;;;;;;;;;;;;4730:968:4;4911:4;4950:1;4935:12;:16;4927:84;;;;-1:-1:-1;;;4927:84:4;;37197:2:61;4927:84:4;;;37179:21:61;37236:2;37216:18;;;37209:30;37275:34;37255:18;;;37248:62;37346:25;37326:18;;;37319:53;37389:19;;4927:84:4;36995:419:61;4927:84:4;5039:12;5030:6;:21;5022:70;;;;-1:-1:-1;;;5022:70:4;;37621:2:61;5022:70:4;;;37603:21:61;37660:2;37640:18;;;37633:30;37699:34;37679:18;;;37672:62;37770:6;37750:18;;;37743:34;37794:19;;5022:70:4;37419:400:61;5022:70:4;5144:23;5154:12;5144:9;:23::i;:::-;5124:9;:16;:43;5103:167;;;;-1:-1:-1;;;5103:167:4;;38026:2:61;5103:167:4;;;38008:21:61;38065:2;38045:18;;;38038:30;38104:34;38084:18;;;38077:62;38175:34;38155:18;;;38148:62;38247:15;38226:19;;;38219:44;38280:19;;5103:167:4;37824:481:61;5103:167:4;5304:5;5281:20;5320:333;5344:9;:16;5340:1;:20;5320:333;;;5386:6;5395:1;5386:10;5401:1;5385:17;5381:235;;5464:9;5474:1;5464:12;;;;;;;;:::i;:::-;;;;;;;5478;5447:44;;;;;;;;38467:19:61;;;38511:2;38502:12;;38495:28;38548:2;38539:12;;38310:247;5447:44:4;;;;;;;;;;;;;5437:55;;;;;;5422:70;;5381:235;;;5573:12;5587:9;5597:1;5587:12;;;;;;;;:::i;:::-;;;;;;;5556:44;;;;;;;;38467:19:61;;;38511:2;38502:12;;38495:28;38548:2;38539:12;;38310:247;5556:44:4;;;;;;;;;;;;;5546:55;;;;;;5531:70;;5381:235;5641:1;5630:12;;;;;5362:3;;;;:::i;:::-;;;;5320:333;;;-1:-1:-1;5670:21:4;;;;4730:968;-1:-1:-1;;;;;4730:968:4:o;47265:1684:31:-;47370:16;47365:54;;47265:1684;;:::o;47365:54::-;47429:16;47448:18;-1:-1:-1;;;;;47448:30:31;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47429:51;;47806:23;47832:10;:8;:10::i;:::-;:22;;-1:-1:-1;47852:2:31;47832:22;:::i;:::-;47806:48;;48400:18;48467:9;48449:15;48421:25;48431:15;48421:7;:25;:::i;:::-;:43;;;;:::i;:::-;:55;;;;:::i;:::-;48400:76;-1:-1:-1;48487:23:31;48575:3;48539:31;48545:25;48575:3;48539:31;:::i;:::-;48514:21;48525:10;48514:8;:21;:::i;:::-;:57;;;;:::i;:::-;48513:65;;;;:::i;:::-;48487:91;-1:-1:-1;48588:23:31;48670:3;48640:25;48615:21;48626:10;48615:8;:21;:::i;:::-;:51;;;;:::i;:::-;48614:59;;;;:::i;:::-;48588:85;;48765:15;48744:17;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;48820:15:31;;-1:-1:-1;48790:12:31;:26;48803:12;:10;:12::i;:::-;-1:-1:-1;;;;;48790:26:31;-1:-1:-1;;;;;48790:26:31;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;48927:15;48906:17;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;47265:1684:31:o;2873:209:8:-;1787:1;3053:7;:22;2873:209::o;42816:3502:31:-;43022:25;43000:18;;;;:47;;;;;;;;:::i;:::-;;42996:110;;43070:25;;;;;;;;;;;;;;42996:110;43117:12;43131:44;43203:7;:12;;;43179:76;;;;;;;;;;;;:::i;:::-;43116:139;;;;43266:27;43296:7;:21;;;43266:51;;43493:12;43507:33;43544:7;-1:-1:-1;;;;;43544:20:31;43615:4;43578:43;;;;;;1459:25:61;;1447:2;1432:18;;1313:177;43578:43:31;;;;-1:-1:-1;;43578:43:31;;;;;;;;;;;;;;;;;;;;43544:87;;;43578:43;43544:87;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43492:139;;;;43647:7;43642:66;;43677:20;;;;;;;;;;;;;;43642:66;43718:23;43755:20;43744:43;;;;;;;;;;;;:::i;:::-;43718:69;-1:-1:-1;;;;;;43862:27:31;;;:31;43858:2454;;44209:18;;44176:15;-1:-1:-1;;;;;44102:200:31;44145:13;44102:200;;;;;;:::i;:::-;;;;;;;;;44245:13;44276:12;44102:200;;;;;;;:::i;:::-;;;;;;;;44316:46;;-1:-1:-1;;;44316:46:31;;40718:2:61;44316:46:31;;;40700:21:61;40757:2;40737:18;;;40730:30;40796:27;40776:18;;;40769:55;44316:8:31;-1:-1:-1;;;;;44316:17:31;;;;40841:18:61;;44316:46:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43858:2454;;;44560:18;44580:31;44615:7;-1:-1:-1;;;;;44615:20:31;44686:4;44692:31;44725:1;44653:75;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;44653:75:31;;;;;;;;;;;;;;;;;;;;44615:127;;;44653:75;44615:127;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44559:183;;;;44765:13;44816;44780:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;44757:74;;;;;-1:-1:-1;;;44757:74:31;;;;;;;;:::i;:::-;;44846:21;44881:18;44870:41;;;;;;;;;;;;:::i;:::-;44846:65;;44949:13;-1:-1:-1;;;;;44930:32:31;:15;-1:-1:-1;;;;;44930:32:31;;44926:1376;;45150:18;;45115:13;-1:-1:-1;;;;;45042:289:31;45080:13;45042:289;;;;;;:::i;:::-;;;;;;;;;45190:13;45225:7;:24;;;45281:31;45271:42;;;;;;45042:289;;;;;;;;:::i;:::-;;;;;;;;45349:37;;-1:-1:-1;;;45349:37:31;;42469:2:61;45349:37:31;;;42451:21:61;42508:2;42488:18;;;42481:30;42547:18;42527;;;42520:46;45349:8:31;-1:-1:-1;;;;;45349:17:31;;;;42583:18:61;;45349:37:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44926:1376;;;45766:15;45736:12;:26;45749:12;:10;:12::i;:::-;-1:-1:-1;;;;;45736:26:31;-1:-1:-1;;;;;45736:26:31;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;45820:15;45799:17;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;45969:18:31;;45859:215;;-1:-1:-1;;;;;45859:215:31;;;;;45897:13;;45859:215;:::i;:::-;;;;;;;;;46009:13;46044:12;45859:215;;;;;;;:::i;:::-;;;;;;;;46092:8;-1:-1:-1;;;;;46092:25:31;;46155:18;;46138:36;;;;;;42741:19:61;;42785:2;42776:12;;42612:182;46138:36:31;;;;;;;;;;;;;46092:83;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;46223:1:31;46194:18;:31;-1:-1:-1;;46243:44:31;;-1:-1:-1;;46243:44:31;46264:23;46243:44;;;44926:1376;44379:1933;;;42986:3332;;;;;;42816:3502;;;:::o;46556:320::-;46641:47;;-1:-1:-1;;46641:47:31;46662:26;46641:47;;;46754:12;:10;:12::i;:::-;-1:-1:-1;;;;;46704:63:31;46734:18;;46704:63;;;;;;;;;;46777:50;;-1:-1:-1;;;46777:50:31;;43462:2:61;46777:50:31;;;43444:21:61;43501:2;43481:18;;;43474:30;43540:31;43520:18;;;43513:59;46777:8:31;-1:-1:-1;;;;;46777:17:31;;;;43589:18:61;;46777:50:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;46867:1:31;46838:18;:31;-1:-1:-1;;;46556:320:31:o;41056:1174::-;41251:34;41229:18;;:56;;;;;;;;:::i;:::-;;41225:118;;41308:24;;;;;;;;;;;;;;41225:118;41441:24;;;;41423:43;;;;;41405:15;;-1:-1:-1;;;;;41423:8:31;:17;;;;:43;;;;1459:25:61;;;1447:2;1432:18;;1313:177;41423:43:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41405:61;;3063:22;41481:7;:24;;;:56;41477:114;;41560:20;;;;;;;;;;;;;;41477:114;41602:11;41615:12;41629:16;41673:7;:12;;;41649:83;;;;;;;;;;;;:::i;:::-;41601:131;;;;;;41875:12;41893:7;-1:-1:-1;;;;;41893:20:31;41969:7;:12;;;41983:3;41988:6;41996:3;41927:74;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;41927:74:31;;;;;;;;;;;;;;;;;;;;41893:118;;;41927:74;41893:118;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41874:137;;;42026:7;42021:64;;42056:18;;;;;;;;;;;;;;42021:64;42150:12;:10;:12::i;:::-;-1:-1:-1;;;;;42100:77:31;42136:7;:12;;;-1:-1:-1;;;;;42100:77:31;42116:18;;42100:77;42164:12;42100:77;;;;1459:25:61;;1447:2;1432:18;;1313:177;42100:77:31;;;;;;;;42187:36;;-1:-1:-1;;;42187:36:31;;44881:2:61;42187:36:31;;;44863:21:61;44920:2;44900:18;;;44893:30;44959:17;44939:18;;;44932:45;42187:8:31;-1:-1:-1;;;;;42187:17:31;;;;44994:18:61;;42187:36:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50153:211;50284:14;;50321:36;:34;:36::i;:::-;50314:43;;;;50153:211;;:::o;1985:109:8:-;5374:13:7;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:7;;36064:2:61;5366:69:7;;;36046:21:61;36103:2;36083:18;;;36076:30;36142:34;36122:18;;;36115:62;36213:13;36193:18;;;36186:41;36244:19;;5366:69:7;35862:407:61;1104:111:5;5374:13:7;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:7;;36064:2:61;5366:69:7;;;36046:21:61;36103:2;36083:18;;;36076:30;36142:34;36122:18;;;36115:62;36213:13;36193:18;;;36186:41;36244:19;;5366:69:7;35862:407:61;5366:69:7;1176:32:5::1;1195:12;:10;:12::i;:::-;1176:18;:32::i;5964:764:4:-:0;6018:7;6051:1;6045:3;:7;6037:68;;;;-1:-1:-1;;;6037:68:4;;45225:2:61;6037:68:4;;;45207:21:61;45264:2;45244:18;;;45237:30;45303:34;45283:18;;;45276:62;45374:18;45354;;;45347:46;45410:19;;6037:68:4;45023:412:61;6037:68:4;6120:3;6127:1;6120:8;6116:47;;-1:-1:-1;6151:1:4;;5964:764;-1:-1:-1;5964:764:4:o;6116:47::-;6326:3;6312:11;6385:3;6368:182;6395:1;6390;:6;6368:182;;6459:1;6433:21;6453:1;6434:15;;;6433:21;:::i;:::-;6432:28;;6425:36;;:41;6421:119;;6486:12;6497:1;6486:12;;:::i;:::-;6516:9;;;;6486:12;-1:-1:-1;6421:119:4;6404:1;6398:7;6368:182;;;-1:-1:-1;6637:1:4;6629:21;;6628:30;;6624:73;;6674:12;6685:1;6674:12;;:::i;:::-;;;6624:73;6714:7;5964:764;-1:-1:-1;;;5964:764:4:o;1223:245:6:-;1283:14;;739:17;-1:-1:-1;;;;;726:30:6;1332:10;726:30;1309:153;;1366:8;;;1376:20;1394:2;1366:8;1376:20;:::i;:::-;1366:31;;;;;;;:::i;1309:153::-;1003:14:10;;1435:16:6;952:99:10;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;614:154:61;-1:-1:-1;;;;;693:5:61;689:54;682:5;679:65;669:93;;758:1;755;748:12;773:247;832:6;885:2;873:9;864:7;860:23;856:32;853:52;;;901:1;898;891:12;853:52;940:9;927:23;959:31;984:5;959:31;:::i;1495:180::-;1554:6;1607:2;1595:9;1586:7;1582:23;1578:32;1575:52;;;1623:1;1620;1613:12;1575:52;-1:-1:-1;1646:23:61;;1495:180;-1:-1:-1;1495:180:61:o;1680:184::-;1732:77;1729:1;1722:88;1829:4;1826:1;1819:15;1853:4;1850:1;1843:15;1869:147;1957:1;1950:5;1947:12;1937:46;;1963:18;;:::i;:::-;1992;;1869:147::o;2021:448::-;2071:3;2109:5;2103:12;2136:6;2131:3;2124:19;2162:4;2191:2;2186:3;2182:12;2175:19;;2228:2;2221:5;2217:14;2249:1;2259:185;2273:6;2270:1;2267:13;2259:185;;;2348:13;;2341:21;2334:29;2322:42;;2384:12;;;;2419:15;;;;2295:1;2288:9;2259:185;;;-1:-1:-1;2460:3:61;;2021:448;-1:-1:-1;;;;;2021:448:61:o;2606:258::-;2678:1;2688:113;2702:6;2699:1;2696:13;2688:113;;;2778:11;;;2772:18;2759:11;;;2752:39;2724:2;2717:10;2688:113;;;2819:6;2816:1;2813:13;2810:48;;;-1:-1:-1;;2854:1:61;2836:16;;2829:27;2606:258::o;2869:317::-;2911:3;2949:5;2943:12;2976:6;2971:3;2964:19;2992:63;3048:6;3041:4;3036:3;3032:14;3025:4;3018:5;3014:16;2992:63;:::i;:::-;3100:2;3088:15;-1:-1:-1;;3084:88:61;3075:98;;;;3175:4;3071:109;;2869:317;-1:-1:-1;;2869:317:61:o;3191:1399::-;3386:2;3375:9;3368:21;3398:67;3461:2;3450:9;3446:18;3437:6;3431:13;3398:67;:::i;:::-;3349:4;3512:2;3504:6;3500:15;3494:22;3535:6;3577:2;3572;3561:9;3557:18;3550:30;3603:60;3658:3;3647:9;3643:19;3629:12;3603:60;:::i;:::-;3589:74;;3717:2;3709:6;3705:15;3699:22;3694:2;3683:9;3679:18;3672:50;3777:2;3769:6;3765:15;3759:22;3753:3;3742:9;3738:19;3731:51;3837:3;3829:6;3825:16;3819:23;3813:3;3802:9;3798:19;3791:52;3898:3;3890:6;3886:16;3880:23;3874:3;3863:9;3859:19;3852:52;3959:3;3951:6;3947:16;3941:23;3935:3;3924:9;3920:19;3913:52;4002:3;3994:6;3990:16;3984:23;4026:3;4065:2;4060;4049:9;4045:18;4038:30;4117:2;4109:6;4105:15;4099:22;4077:44;;;4140:3;4152:54;4202:2;4191:9;4187:18;4171:14;-1:-1:-1;;;;;2540:54:61;2528:67;;2474:127;4152:54;4243:15;;4237:22;;-1:-1:-1;4278:3:61;4290:51;4322:18;;;4237:22;1095:13;1088:21;1076:34;;1025:91;4290:51;4378:15;;4372:22;4434;;;-1:-1:-1;;4430:95:61;4410:18;;;4403:123;4372:22;-1:-1:-1;4543:41:61;4438:6;4372:22;4543:41;:::i;:::-;4535:49;3191:1399;-1:-1:-1;;;;;;3191:1399:61:o;4595:184::-;4647:77;4644:1;4637:88;4744:4;4741:1;4734:15;4768:4;4765:1;4758:15;4784:253;4856:2;4850:9;4898:4;4886:17;;4933:18;4918:34;;4954:22;;;4915:62;4912:88;;;4980:18;;:::i;:::-;5016:2;5009:22;4784:253;:::o;5042:334::-;5113:2;5107:9;5169:2;5159:13;;-1:-1:-1;;5155:86:61;5143:99;;5272:18;5257:34;;5293:22;;;5254:62;5251:88;;;5319:18;;:::i;:::-;5355:2;5348:22;5042:334;;-1:-1:-1;5042:334:61:o;5381:245::-;5429:4;5462:18;5454:6;5451:30;5448:56;;;5484:18;;:::i;:::-;-1:-1:-1;5541:2:61;5529:15;-1:-1:-1;;5525:88:61;5615:4;5521:99;;5381:245::o;5631:462::-;5673:5;5726:3;5719:4;5711:6;5707:17;5703:27;5693:55;;5744:1;5741;5734:12;5693:55;5780:6;5767:20;5811:48;5827:31;5855:2;5827:31;:::i;:::-;5811:48;:::i;:::-;5884:2;5875:7;5868:19;5930:3;5923:4;5918:2;5910:6;5906:15;5902:26;5899:35;5896:55;;;5947:1;5944;5937:12;5896:55;6012:2;6005:4;5997:6;5993:17;5986:4;5977:7;5973:18;5960:55;6060:1;6035:16;;;6053:4;6031:27;6024:38;;;;6039:7;5631:462;-1:-1:-1;;;5631:462:61:o;6098:320::-;6166:6;6219:2;6207:9;6198:7;6194:23;6190:32;6187:52;;;6235:1;6232;6225:12;6187:52;6275:9;6262:23;6308:18;6300:6;6297:30;6294:50;;;6340:1;6337;6330:12;6294:50;6363:49;6404:7;6395:6;6384:9;6380:22;6363:49;:::i;:::-;6353:59;6098:320;-1:-1:-1;;;;6098:320:61:o;6423:218::-;6570:2;6559:9;6552:21;6533:4;6590:45;6631:2;6620:9;6616:18;6608:6;6590:45;:::i;7242:142::-;7318:20;;7347:31;7318:20;7347:31;:::i;:::-;7242:142;;;:::o;7389:464::-;7474:6;7482;7490;7543:2;7531:9;7522:7;7518:23;7514:32;7511:52;;;7559:1;7556;7549:12;7511:52;7598:9;7585:23;7617:31;7642:5;7617:31;:::i;:::-;7667:5;-1:-1:-1;7719:2:61;7704:18;;7691:32;;-1:-1:-1;7775:2:61;7760:18;;7747:32;7788:33;7747:32;7788:33;:::i;:::-;7840:7;7830:17;;;7389:464;;;;;:::o;8302:199::-;8378:4;8411:18;8403:6;8400:30;8397:56;;;8433:18;;:::i;:::-;-1:-1:-1;8478:1:61;8474:14;8490:4;8470:25;;8302:199::o;8506:2155::-;8576:5;8629:3;8622:4;8614:6;8610:17;8606:27;8596:55;;8647:1;8644;8637:12;8596:55;8683:6;8670:20;8709:4;8733:76;8749:59;8805:2;8749:59;:::i;8733:76::-;8843:15;;;8929:1;8925:10;;;;8913:23;;8909:32;;;8874:12;;;;8953:15;;;8950:35;;;8981:1;8978;8971:12;8950:35;9017:2;9009:6;9005:15;9029:1603;9045:6;9040:3;9037:15;9029:1603;;;9131:3;9118:17;9158:18;9208:2;9195:11;9192:19;9189:109;;;9252:1;9281:2;9277;9270:14;9189:109;9333:11;9325:6;9321:24;9311:34;;9368:4;9479:2;-1:-1:-1;;9405:2:61;9400:3;9396:12;9392:85;9388:94;9385:184;;;9523:1;9552:2;9548;9541:14;9385:184;9595:22;;:::i;:::-;9667:2;9663;9659:11;9646:25;9700:2;9690:8;9687:16;9684:106;;;9744:1;9773:2;9769;9762:14;9684:106;9817:49;9862:3;9857:2;9846:8;9842:2;9838:17;9834:26;9817:49;:::i;:::-;9810:5;9803:64;;9890:2;9942;9938;9934:11;9921:25;9975:2;9965:8;9962:16;9959:109;;;10020:1;10050:3;10045;10038:16;9959:109;10104:49;10149:3;10144:2;10133:8;10129:2;10125:17;10121:26;10104:49;:::i;:::-;10099:2;10092:5;10088:14;10081:73;;10178:2;10167:13;;10229:3;10225:2;10221:12;10208:26;10247:33;10272:7;10247:33;:::i;:::-;10300:14;;;10293:31;10348:3;10392:12;;;10379:26;10418:33;10379:26;10418:33;:::i;:::-;10471:15;;;10464:32;;;;10546:11;;10533:25;10516:15;;;10509:50;10572:18;;10610:12;;;;9062;;9029:1603;;;-1:-1:-1;10650:5:61;8506:2155;-1:-1:-1;;;;;;8506:2155:61:o;10666:1737::-;10730:5;10783:3;10776:4;10768:6;10764:17;10760:27;10750:55;;10801:1;10798;10791:12;10750:55;10837:6;10824:20;10863:4;10887:76;10903:59;10959:2;10903:59;:::i;10887:76::-;10997:15;;;11059:1;11099:11;;;11087:24;;11083:33;;;11028:12;;;;10985:3;11128:15;;;11125:35;;;11156:1;11153;11146:12;11125:35;11192:2;11184:6;11180:15;11204:1170;11220:6;11215:3;11212:15;11204:1170;;;11306:3;11293:17;11342:18;11329:11;11326:35;11323:125;;;11402:1;11431:2;11427;11420:14;11323:125;11471:24;;11530:2;11522:11;;11518:21;-1:-1:-1;11508:119:61;;11581:1;11610:2;11606;11599:14;11508:119;11671:2;11667;11663:11;11650:25;11698:2;11726:76;11742:59;11798:2;11742:59;:::i;11726:76::-;11846:17;;;11940:11;;;11932:20;;11928:29;;;11885:14;;;;11973:17;;;11970:107;;;12031:1;12060:2;12056;12049:14;11970:107;12103:11;;;;12127:174;12145:8;12138:5;12135:19;12127:174;;;12227:19;;12213:34;;12166:14;;;;12273;;;;12127:174;;;12314:18;;-1:-1:-1;;;12352:12:61;;;;-1:-1:-1;11237:12:61;;11204:1170;;;-1:-1:-1;12392:5:61;;10666:1737;-1:-1:-1;;;;;;;10666:1737:61:o;12408:2173::-;12481:5;12534:3;12527:4;12519:6;12515:17;12511:27;12501:55;;12552:1;12549;12542:12;12501:55;12588:6;12575:20;12614:4;12638:76;12654:59;12710:2;12654:59;:::i;12638:76::-;12748:15;;;12834:1;12830:10;;;;12818:23;;12814:32;;;12779:12;;;;12858:15;;;12855:35;;;12886:1;12883;12876:12;12855:35;12922:2;12914:6;12910:15;12934:1618;12950:6;12945:3;12942:15;12934:1618;;;13036:3;13023:17;13063:18;13113:2;13100:11;13097:19;13094:109;;;13157:1;13186:2;13182;13175:14;13094:109;13238:11;13230:6;13226:24;13216:34;;13273:4;13384:2;-1:-1:-1;;13310:2:61;13305:3;13301:12;13297:85;13293:94;13290:184;;;13428:1;13457:2;13453;13446:14;13290:184;13500:22;;:::i;:::-;13571:2;13567;13563:11;13550:25;13610:1;13601:7;13598:14;13588:112;;13654:1;13683:2;13679;13672:14;13588:112;13713:22;;13758:2;13802:11;;;13789:25;13830:16;;;13827:109;;;13888:1;13918:3;13913;13906:16;13827:109;13972:49;14017:3;14012:2;14001:8;13997:2;13993:17;13989:26;13972:49;:::i;:::-;13967:2;13960:5;13956:14;13949:73;;14046:2;14084:40;14119:3;14115:2;14111:12;14084:40;:::i;:::-;14079:2;14072:5;14068:14;14061:64;14149:3;14138:14;;14210:3;14206:2;14202:12;14189:26;14183:3;14176:5;14172:15;14165:51;;14266:2;14262;14258:11;14245:25;14229:41;;14299:2;14289:8;14286:16;14283:109;;;14344:1;14374:3;14369;14362:16;14283:109;14429:49;14474:3;14469:2;14458:8;14454:2;14450:17;14446:26;14429:49;:::i;:::-;14412:15;;;14405:74;14492:18;;-1:-1:-1;;;14530:12:61;;;;12967;;12934:1618;;14586:678;14640:5;14693:3;14686:4;14678:6;14674:17;14670:27;14660:55;;14711:1;14708;14701:12;14660:55;14747:6;14734:20;14773:4;14797:76;14813:59;14869:2;14813:59;:::i;14797:76::-;14907:15;;;14993:1;14989:10;;;;14977:23;;14973:32;;;14938:12;;;;15017:15;;;15014:35;;;15045:1;15042;15035:12;15014:35;15081:2;15073:6;15069:15;15093:142;15109:6;15104:3;15101:15;15093:142;;;15175:17;;15163:30;;15213:12;;;;15126;;15093:142;;15269:1451;15610:6;15618;15626;15634;15642;15695:3;15683:9;15674:7;15670:23;15666:33;15663:53;;;15712:1;15709;15702:12;15663:53;15752:9;15739:23;15781:18;15822:2;15814:6;15811:14;15808:34;;;15838:1;15835;15828:12;15808:34;15861:77;15930:7;15921:6;15910:9;15906:22;15861:77;:::i;:::-;15851:87;;15991:2;15980:9;15976:18;15963:32;15947:48;;16020:2;16010:8;16007:16;16004:36;;;16036:1;16033;16026:12;16004:36;16059:73;16124:7;16113:8;16102:9;16098:24;16059:73;:::i;:::-;16049:83;;16185:2;16174:9;16170:18;16157:32;16141:48;;16214:2;16204:8;16201:16;16198:36;;;16230:1;16227;16220:12;16198:36;16253:82;16327:7;16316:8;16305:9;16301:24;16253:82;:::i;:::-;16243:92;;16388:2;16377:9;16373:18;16360:32;16344:48;;16417:2;16407:8;16404:16;16401:36;;;16433:1;16430;16423:12;16401:36;16456:63;16511:7;16500:8;16489:9;16485:24;16456:63;:::i;:::-;16446:73;;16572:3;16561:9;16557:19;16544:33;16528:49;;16602:2;16592:8;16589:16;16586:36;;;16618:1;16615;16608:12;16586:36;;16641:73;16706:7;16695:8;16684:9;16680:24;16641:73;:::i;:::-;16631:83;;;15269:1451;;;;;;;;:::o;16725:680::-;16902:6;16910;16963:2;16951:9;16942:7;16938:23;16934:32;16931:52;;;16979:1;16976;16969:12;16931:52;17019:9;17006:23;17048:18;17089:2;17081:6;17078:14;17075:34;;;17105:1;17102;17095:12;17075:34;17128:77;17197:7;17188:6;17177:9;17173:22;17128:77;:::i;:::-;17118:87;;17258:2;17247:9;17243:18;17230:32;17214:48;;17287:2;17277:8;17274:16;17271:36;;;17303:1;17300;17293:12;17271:36;;17326:73;17391:7;17380:8;17369:9;17365:24;17326:73;:::i;:::-;17316:83;;;16725:680;;;;;:::o;17410:912::-;17624:6;17632;17640;17693:2;17681:9;17672:7;17668:23;17664:32;17661:52;;;17709:1;17706;17699:12;17661:52;17749:9;17736:23;17778:18;17819:2;17811:6;17808:14;17805:34;;;17835:1;17832;17825:12;17805:34;17858:80;17930:7;17921:6;17910:9;17906:22;17858:80;:::i;:::-;17848:90;;17991:2;17980:9;17976:18;17963:32;17947:48;;18020:2;18010:8;18007:16;18004:36;;;18036:1;18033;18026:12;18004:36;18059:63;18114:7;18103:8;18092:9;18088:24;18059:63;:::i;:::-;18049:73;;18175:2;18164:9;18160:18;18147:32;18131:48;;18204:2;18194:8;18191:16;18188:36;;;18220:1;18217;18210:12;18188:36;;18243:73;18308:7;18297:8;18286:9;18282:24;18243:73;:::i;:::-;18233:83;;;17410:912;;;;;:::o;18327:118::-;18413:5;18406:13;18399:21;18392:5;18389:32;18379:60;;18435:1;18432;18425:12;18450:794;18570:6;18578;18586;18594;18602;18610;18618;18671:3;18659:9;18650:7;18646:23;18642:33;18639:53;;;18688:1;18685;18678:12;18639:53;18724:9;18711:23;18701:33;;18781:2;18770:9;18766:18;18753:32;18743:42;;18832:2;18821:9;18817:18;18804:32;18794:42;;18883:2;18872:9;18868:18;18855:32;18845:42;;18934:3;18923:9;18919:19;18906:33;18896:43;;18990:3;18979:9;18975:19;18962:33;19018:18;19010:6;19007:30;19004:50;;;19050:1;19047;19040:12;19004:50;19073:49;19114:7;19105:6;19094:9;19090:22;19073:49;:::i;:::-;19063:59;;;19172:3;19161:9;19157:19;19144:33;19186:28;19208:5;19186:28;:::i;:::-;19233:5;19223:15;;;18450:794;;;;;;;;;;:::o;19431:382::-;19496:6;19504;19557:2;19545:9;19536:7;19532:23;19528:32;19525:52;;;19573:1;19570;19563:12;19525:52;19612:9;19599:23;19631:31;19656:5;19631:31;:::i;:::-;19681:5;-1:-1:-1;19738:2:61;19723:18;;19710:32;19751:30;19710:32;19751:30;:::i;:::-;19800:7;19790:17;;;19431:382;;;;;:::o;20072:437::-;20151:1;20147:12;;;;20194;;;20215:61;;20269:4;20261:6;20257:17;20247:27;;20215:61;20322:2;20314:6;20311:14;20291:18;20288:38;20285:218;;20359:77;20356:1;20349:88;20460:4;20457:1;20450:15;20488:4;20485:1;20478:15;20929:448;21022:6;21030;21038;21091:2;21079:9;21070:7;21066:23;21062:32;21059:52;;;21107:1;21104;21097:12;21059:52;21139:9;21133:16;21158:31;21183:5;21158:31;:::i;:::-;21253:2;21238:18;;21232:25;21302:2;21287:18;;21281:25;21208:5;;-1:-1:-1;21232:25:61;-1:-1:-1;21315:30:61;21281:25;21315:30;:::i;21883:245::-;21950:6;22003:2;21991:9;21982:7;21978:23;21974:32;21971:52;;;22019:1;22016;22009:12;21971:52;22051:9;22045:16;22070:28;22092:5;22070:28;:::i;22133:184::-;22185:77;22182:1;22175:88;22282:4;22279:1;22272:15;22306:4;22303:1;22296:15;22322:128;22362:3;22393:1;22389:6;22386:1;22383:13;22380:39;;;22399:18;;:::i;:::-;-1:-1:-1;22435:9:61;;22322:128::o;23169:251::-;23239:6;23292:2;23280:9;23271:7;23267:23;23263:32;23260:52;;;23308:1;23305;23298:12;23260:52;23340:9;23334:16;23359:31;23384:5;23359:31;:::i;23773:274::-;23902:3;23940:6;23934:13;23956:53;24002:6;23997:3;23990:4;23982:6;23978:17;23956:53;:::i;:::-;24025:16;;;;;23773:274;-1:-1:-1;;23773:274:61:o;24394:125::-;24434:4;24462:1;24459;24456:8;24453:34;;;24467:18;;:::i;:::-;-1:-1:-1;24504:9:61;;24394:125::o;25128:184::-;25180:77;25177:1;25170:88;25277:4;25274:1;25267:15;25301:4;25298:1;25291:15;25317:694;25614:3;25603:9;25596:22;25577:4;25641:46;25682:3;25671:9;25667:19;25659:6;25641:46;:::i;:::-;25735:9;25727:6;25723:22;25718:2;25707:9;25703:18;25696:50;25763:33;25789:6;25781;25763:33;:::i;:::-;-1:-1:-1;;;;;25893:15:61;;;25888:2;25873:18;;25866:43;25945:15;;;;25940:2;25925:18;;25918:43;-1:-1:-1;25992:3:61;25977:19;25970:35;25755:41;25317:694;-1:-1:-1;;;25317:694:61:o;26263:195::-;26302:3;-1:-1:-1;;26326:5:61;26323:77;26320:103;;26403:18;;:::i;:::-;-1:-1:-1;26450:1:61;26439:13;;26263:195::o;27014:463::-;27262:2;27251:9;27244:21;27301:2;27296;27285:9;27281:18;27274:30;27340:25;27335:2;27324:9;27320:18;27313:53;27404:3;27397:4;27386:9;27382:20;27375:33;27225:4;27425:46;27466:3;27455:9;27451:19;27443:6;27425:46;:::i;27482:741::-;27800:3;27789:9;27782:22;27763:4;27827:46;27868:3;27857:9;27853:19;27845:6;27827:46;:::i;:::-;-1:-1:-1;;;;;27913:6:61;27909:55;27904:2;27893:9;27889:18;27882:83;27995:1;27987:6;27984:13;27974:47;;28001:18;;:::i;:::-;28057:6;28052:2;28041:9;28037:18;28030:34;28100:6;28095:2;28084:9;28080:18;28073:34;28156:9;28148:6;28144:22;28138:3;28127:9;28123:19;28116:51;28184:33;28210:6;28202;28184:33;:::i;:::-;28176:41;27482:741;-1:-1:-1;;;;;;;;27482:741:61:o;28585:579::-;28874:6;28863:9;28856:25;28917:6;28912:2;28901:9;28897:18;28890:34;28960:6;28955:2;28944:9;28940:18;28933:34;29003:6;28998:2;28987:9;28983:18;28976:34;29047:6;29041:3;29030:9;29026:19;29019:35;29091:3;29085;29074:9;29070:19;29063:32;28837:4;29112:46;29153:3;29142:9;29138:19;29130:6;29112:46;:::i;29295:545::-;29397:2;29392:3;29389:11;29386:448;;;29433:1;29458:5;29454:2;29447:17;29503:4;29499:2;29489:19;29573:2;29561:10;29557:19;29554:1;29550:27;29544:4;29540:38;29609:4;29597:10;29594:20;29591:47;;;-1:-1:-1;29632:4:61;29591:47;29687:2;29682:3;29678:12;29675:1;29671:20;29665:4;29661:31;29651:41;;29742:82;29760:2;29753:5;29750:13;29742:82;;;29805:17;;;29786:1;29775:13;29742:82;;30076:1471;30202:3;30196:10;30229:18;30221:6;30218:30;30215:56;;;30251:18;;:::i;:::-;30280:97;30370:6;30330:38;30362:4;30356:11;30330:38;:::i;:::-;30324:4;30280:97;:::i;:::-;30432:4;;30496:2;30485:14;;30513:1;30508:782;;;;31334:1;31351:6;31348:89;;;-1:-1:-1;31403:19:61;;;31397:26;31348:89;-1:-1:-1;;29973:1:61;29969:11;;;29965:84;29961:89;29951:100;30057:1;30053:11;;;29948:117;31450:81;;30478:1063;;30508:782;29242:1;29235:14;;;29279:4;29266:18;;-1:-1:-1;;30544:79:61;;;30721:236;30735:7;30732:1;30729:14;30721:236;;;30824:19;;;30818:26;30803:42;;30916:27;;;;30884:1;30872:14;;;;30751:19;;30721:236;;;30725:3;30985:6;30976:7;30973:19;30970:261;;;31046:19;;;31040:26;-1:-1:-1;;31129:1:61;31125:14;;;31141:3;31121:24;31117:97;31113:102;31098:118;31083:134;;30970:261;-1:-1:-1;;;;;31277:1:61;31261:14;;;31257:22;31244:36;;-1:-1:-1;30076:1471:61:o;31552:802::-;31854:4;31883:3;31913:6;31902:9;31895:25;31956:6;31951:2;31940:9;31936:18;31929:34;31999:6;31994:2;31983:9;31979:18;31972:34;32042:6;32037:2;32026:9;32022:18;32015:34;32086:6;32080:3;32069:9;32065:19;32058:35;32130:2;32124:3;32113:9;32109:19;32102:31;32150:45;32191:2;32180:9;32176:18;32168:6;32150:45;:::i;:::-;32239:14;;32232:22;32226:3;32211:19;;32204:51;-1:-1:-1;;;;;;;32292:55:61;;;;32286:3;32271:19;;;32264:84;32142:53;31552:802;-1:-1:-1;;;;;;31552:802:61:o;32628:468::-;32876:2;32865:9;32858:21;32915:2;32910;32899:9;32895:18;32888:30;32954;32949:2;32938:9;32934:18;32927:58;33023:3;33016:4;33005:9;33001:20;32994:33;32839:4;33044:46;33085:3;33074:9;33070:19;33062:6;33044:46;:::i;33101:451::-;33349:2;33338:9;33331:21;33388:2;33383;33372:9;33368:18;33361:30;33427:13;33422:2;33411:9;33407:18;33400:41;33479:3;33472:4;33461:9;33457:20;33450:33;33312:4;33500:46;33541:3;33530:9;33526:19;33518:6;33500:46;:::i;33557:383::-;33754:2;33743:9;33736:21;33717:4;33780:45;33821:2;33810:9;33806:18;33798:6;33780:45;:::i;:::-;33873:9;33865:6;33861:22;33856:2;33845:9;33841:18;33834:50;33901:33;33927:6;33919;33901:33;:::i;:::-;33893:41;33557:383;-1:-1:-1;;;;;33557:383:61:o;34230:453::-;34478:2;34467:9;34460:21;34517:2;34512;34501:9;34497:18;34490:30;34556:15;34551:2;34540:9;34536:18;34529:43;34610:3;34603:4;34592:9;34588:20;34581:33;34441:4;34631:46;34672:3;34661:9;34657:19;34649:6;34631:46;:::i;35440:184::-;35510:6;35563:2;35551:9;35542:7;35538:23;35534:32;35531:52;;;35579:1;35576;35569:12;35531:52;-1:-1:-1;35602:16:61;;35440:184;-1:-1:-1;35440:184:61:o;35629:228::-;35669:7;35795:1;-1:-1:-1;;35723:74:61;35720:1;35717:81;35712:1;35705:9;35698:17;35694:105;35691:131;;;35802:18;;:::i;:::-;-1:-1:-1;35842:9:61;;35629:228::o;38562:274::-;38602:1;38628;38618:189;;38663:77;38660:1;38653:88;38764:4;38761:1;38754:15;38792:4;38789:1;38782:15;38618:189;-1:-1:-1;38821:9:61;;38562:274::o;38841:428::-;38894:5;38947:3;38940:4;38932:6;38928:17;38924:27;38914:55;;38965:1;38962;38955:12;38914:55;38994:6;38988:13;39025:48;39041:31;39069:2;39041:31;:::i;39025:48::-;39098:2;39089:7;39082:19;39144:3;39137:4;39132:2;39124:6;39120:15;39116:26;39113:35;39110:55;;;39161:1;39158;39151:12;39110:55;39174:64;39235:2;39228:4;39219:7;39215:18;39208:4;39200:6;39196:17;39174:64;:::i;39274:396::-;39362:6;39370;39423:2;39411:9;39402:7;39398:23;39394:32;39391:52;;;39439:1;39436;39429:12;39391:52;39468:9;39462:16;39452:26;;39522:2;39511:9;39507:18;39501:25;39549:18;39541:6;39538:30;39535:50;;;39581:1;39578;39571:12;39535:50;39604:60;39656:7;39647:6;39636:9;39632:22;39604:60;:::i;40220:291::-;40397:2;40386:9;40379:21;40360:4;40417:45;40458:2;40447:9;40443:18;40435:6;40417:45;:::i;:::-;40409:53;;40498:6;40493:2;40482:9;40478:18;40471:34;40220:291;;;;;:::o;40870:368::-;41081:6;41070:9;41063:25;41124:2;41119;41108:9;41104:18;41097:30;41044:4;41144:45;41185:2;41174:9;41170:18;41162:6;41144:45;:::i;:::-;41136:53;;41225:6;41220:2;41209:9;41205:18;41198:34;40870:368;;;;;;:::o;41243:427::-;41495:20;41490:3;41483:33;41465:3;41545:6;41539:13;41561:62;41616:6;41611:2;41606:3;41602:12;41595:4;41587:6;41583:17;41561:62;:::i;:::-;41643:16;;;;41661:2;41639:25;;41243:427;-1:-1:-1;;41243:427:61:o;41900:362::-;42105:2;42094:9;42087:21;42068:4;42125:45;42166:2;42155:9;42151:18;42143:6;42125:45;:::i;:::-;42201:2;42186:18;;42179:34;;;;-1:-1:-1;42244:2:61;42229:18;42222:34;42117:53;41900:362;-1:-1:-1;41900:362:61:o;42799:456::-;43047:2;43036:9;43029:21;43086:2;43081;43070:9;43066:18;43059:30;43125:18;43120:2;43109:9;43105:18;43098:46;43182:3;43175:4;43164:9;43160:20;43153:33;43010:4;43203:46;43244:3;43233:9;43229:19;43221:6;43203:46;:::i;43618:546::-;43713:6;43721;43729;43782:2;43770:9;43761:7;43757:23;43753:32;43750:52;;;43798:1;43795;43788:12;43750:52;43827:9;43821:16;43811:26;;43880:2;43869:9;43865:18;43859:25;43924:4;43917:5;43913:16;43906:5;43903:27;43893:55;;43944:1;43941;43934:12;43893:55;44016:2;44001:18;;43995:25;43967:5;;-1:-1:-1;44043:18:61;44032:30;;44029:50;;;44075:1;44072;44065:12;44029:50;44098:60;44150:7;44141:6;44130:9;44126:22;44098:60;:::i;44169:505::-;-1:-1:-1;;;;;44416:6:61;44412:55;44401:9;44394:74;44504:6;44499:2;44488:9;44484:18;44477:34;44559:4;44551:6;44547:17;44542:2;44531:9;44527:18;44520:45;44601:3;44596:2;44585:9;44581:18;44574:31;44375:4;44622:46;44663:3;44652:9;44648:19;44640:6;44622:46;:::i;45440:331::-;45545:9;45556;45598:8;45586:10;45583:24;45580:44;;;45620:1;45617;45610:12;45580:44;45649:6;45639:8;45636:20;45633:40;;;45669:1;45666;45659:12;45633:40;-1:-1:-1;;45695:23:61;;;45740:25;;;;;-1:-1:-1;45440:331:61:o"},"methodIdentifiers":{"activeDeploymentId()":"dfba66f0","allowManagedProposals()":"ef9fe8e4","approve(bytes32)":"a53a1adf","cancelActiveChugSplashDeployment()":"5229c975","claimDeployment()":"4731d48c","claimExecutorPayment(uint256)":"79e6f49a","create3()":"bae4b95f","deployments(bytes32)":"37404017","executeActions((uint8,bytes,address,bytes32,string)[],uint256[],bytes32[][])":"a47d0801","executeEntireUpgrade((string,string,address,address,bytes32)[],bytes32[][],(uint8,bytes,address,bytes32,string)[],uint256[],bytes32[][])":"91e219ae","executionLockTime()":"fff81d4c","executorDebt(address)":"73b4a738","executorPaymentPercentage()":"f220aca9","exportProxy(address,bytes32,address)":"75cd65e1","finalizeUpgrade((string,string,address,address,bytes32)[],bytes32[][])":"f23d6142","gasPriceCalculator()":"0523a04c","gaslesslyPropose(bytes32,bytes32,uint256,uint256,uint256,string,bool)":"fd95a3be","getSelectedExecutor(bytes32)":"61f5499f","initialize(bytes)":"439fab91","initiateUpgrade((string,string,address,address,bytes32)[],bytes32[][])":"9449a44f","isExecuting()":"e8ea2d08","isProposer(address)":"74ec29a0","isTrustedForwarder(address)":"572b6c05","managedService()":"f2a7208d","organizationID()":"f0317111","owner()":"8da5cb5b","ownerBondAmount()":"2e0a6960","propose(bytes32,bytes32,uint256,uint256,uint256,string,bool)":"a7882f93","proposers(address)":"18177497","protocolPaymentPercentage()":"7521120f","registry()":"7b103999","renounceOwnership()":"715018a6","setProposer(address,bool)":"e9ed9b64","toggleAllowManagedProposals()":"9a20ba78","totalDebt()":"fc7b9c18","totalExecutorDebt()":"c6eb84e5","totalProtocolDebt()":"bd8bcd89","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdrawOwnerETH()":"f40c7c4c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IChugSplashRegistry\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_create3\",\"type\":\"address\"},{\"internalType\":\"contract IGasPriceCalculator\",\"name\":\"_gasPriceCalculator\",\"type\":\"address\"},{\"internalType\":\"contract IAccessControl\",\"name\":\"_managedService\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_executionLockTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_ownerBondAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_executorPaymentPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_protocolPaymentPercentage\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"_version\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_trustedForwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ActionAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AnotherDeploymentInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerIsNotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerIsNotProposer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerIsNotRemoteExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerIsNotSelectedExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ContractDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentAlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentIsNotApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentIsNotProposed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentStateIsNotProposable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyActionsArray\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedToFinalizeUpgrade\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedToGetAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedToInitiateUpgrade\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FinalizedUpgradeTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectNumberOfTargets\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitiatedUpgradeTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientExecutorDebt\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientOwnerBond\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActionType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidContractKind\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoActiveDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyProxiesAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxiesAreNotInitiated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyExportFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RemoteExecutionDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SetStorageFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"}],\"name\":\"ChugSplashDeploymentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionsExecuted\",\"type\":\"uint256\"}],\"name\":\"ChugSplashDeploymentCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"name\":\"ChugSplashDeploymentClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"name\":\"ChugSplashDeploymentCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"actionRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"targetRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numActions\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numTargets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numImmutableContracts\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"configUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"remoteExecution\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"}],\"name\":\"ChugSplashDeploymentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"referenceNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"creationCodeWithArgsHash\",\"type\":\"bytes32\"}],\"name\":\"ContractDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"referenceNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionIndex\",\"type\":\"uint256\"}],\"name\":\"ContractDeploymentSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"referenceNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"expectedAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionIndex\",\"type\":\"uint256\"}],\"name\":\"DeploymentFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ETHDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"name\":\"ExecutorPaymentClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OwnerWithdrewETH\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isProposer\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProposerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"name\":\"ProxiesInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"ProxyExported\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"projectName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"}],\"name\":\"ProxyUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionIndex\",\"type\":\"uint256\"}],\"name\":\"SetProxyStorage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isManaged\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ToggledManagedProposals\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activeDeploymentId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowManagedProposals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_deploymentId\",\"type\":\"bytes32\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelActiveChugSplashDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claimExecutorPayment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"create3\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_deploymentId\",\"type\":\"bytes32\"}],\"name\":\"deployments\",\"outputs\":[{\"components\":[{\"internalType\":\"enum DeploymentStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bool[]\",\"name\":\"actions\",\"type\":\"bool[]\"},{\"internalType\":\"uint256\",\"name\":\"targets\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"actionRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"targetRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"numImmutableContracts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actionsExecuted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeClaimed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"selectedExecutor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"remoteExecution\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"configUri\",\"type\":\"string\"}],\"internalType\":\"struct DeploymentState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum ChugSplashActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"}],\"internalType\":\"struct RawChugSplashAction[]\",\"name\":\"_actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_actionIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_proofs\",\"type\":\"bytes32[][]\"}],\"name\":\"executeActions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"projectName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ChugSplashTarget[]\",\"name\":\"_targets\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_targetProofs\",\"type\":\"bytes32[][]\"},{\"components\":[{\"internalType\":\"enum ChugSplashActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"}],\"internalType\":\"struct RawChugSplashAction[]\",\"name\":\"_actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_actionIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_actionProofs\",\"type\":\"bytes32[][]\"}],\"name\":\"executeEntireUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executionLockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"executorDebt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executorPaymentPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractKindHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"exportProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"projectName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ChugSplashTarget[]\",\"name\":\"_targets\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_proofs\",\"type\":\"bytes32[][]\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasPriceCalculator\",\"outputs\":[{\"internalType\":\"contract IGasPriceCalculator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_actionRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_targetRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_numActions\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numTargets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numImmutableContracts\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_configUri\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_remoteExecution\",\"type\":\"bool\"}],\"name\":\"gaslesslyPropose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_deploymentId\",\"type\":\"bytes32\"}],\"name\":\"getSelectedExecutor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"projectName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ChugSplashTarget[]\",\"name\":\"_targets\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_proofs\",\"type\":\"bytes32[][]\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isExecuting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"isProposer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"managedService\",\"outputs\":[{\"internalType\":\"contract IAccessControl\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"organizationID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ownerBondAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_actionRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_targetRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_numActions\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numTargets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numImmutableContracts\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_configUri\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_remoteExecution\",\"type\":\"bool\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"proposers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolPaymentPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IChugSplashRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isProposer\",\"type\":\"bool\"}],\"name\":\"setProposer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"toggleAllowManagedProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDebt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalExecutorDebt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalProtocolDebt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawOwnerETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:version\":\"1.0.0\",\"kind\":\"dev\",\"methods\":{\"approve(bytes32)\":{\"params\":{\"_deploymentId\":\"ID of the deployment to approve\"}},\"claimExecutorPayment(uint256)\":{\"params\":{\"_amount\":\"Amount of ETH to withdraw.\"}},\"constructor\":{\"params\":{\"_create3\":\"Address of the Create3 contract.\",\"_executionLockTime\":\"Amount of time for a remote executor to completely execute a deployment after claiming it.\",\"_executorPaymentPercentage\":\"Percentage that an executor will profit from completing a deployment.\",\"_gasPriceCalculator\":\"Address of the GasPriceCalculator contract.\",\"_managedService\":\"Address of the ManagedService contract.\",\"_ownerBondAmount\":\"Amount that must be deposited in this contract in order to                                   remote execute a deployment.\",\"_protocolPaymentPercentage\":\"Percentage that the protocol creators will profit from completing a deployment.\",\"_registry\":\"Address of the ChugSplashRegistry.\",\"_version\":\"Version of this contract.\"}},\"deployments(bytes32)\":{\"params\":{\"_deploymentId\":\"Deployment ID.\"},\"returns\":{\"_0\":\"DeploymentState struct.\"}},\"executeActions((uint8,bytes,address,bytes32,string)[],uint256[],bytes32[][])\":{\"params\":{\"_actionIndexes\":\"Array of action indexes.\",\"_actions\":\"Array of RawChugSplashAction structs containing the actions for the                 deployment.\",\"_proofs\":\"Array of Merkle proofs for the actions.\"}},\"executeEntireUpgrade((string,string,address,address,bytes32)[],bytes32[][],(uint8,bytes,address,bytes32,string)[],uint256[],bytes32[][])\":{\"params\":{\"_actionIndexes\":\"Array of indexes into the actions array for each target.\",\"_actionProofs\":\"Array of Merkle proofs for the actions.\",\"_actions\":\"Array of RawChugSplashAction structs containing the actions for the                 deployment.\",\"_targetProofs\":\"Array of Merkle proofs for the targets.\",\"_targets\":\"Array of ChugSplashTarget structs containing the targets for the deployment.\"}},\"exportProxy(address,bytes32,address)\":{\"params\":{\"_contractKindHash\":\"Hash of the contract kind, which represents the proxy type.\",\"_newOwner\":\"Address of the owner to receive ownership of the proxy.\",\"_proxy\":\"Address of the proxy to transfer ownership of.\"}},\"finalizeUpgrade((string,string,address,address,bytes32)[],bytes32[][])\":{\"params\":{\"_proofs\":\"Array of Merkle proofs for the targets.\",\"_targets\":\"Array of ChugSplashTarget structs containing the targets for the deployment.\"}},\"getSelectedExecutor(bytes32)\":{\"params\":{\"_deploymentId\":\"ID of the deployment to query.\"},\"returns\":{\"_0\":\"Address of the selected executor.\"}},\"initialize(bytes)\":{\"params\":{\"_data\":\"Initialization data. We expect the following data, ABI-encoded:              - address _owner: Address of the owner of this contract.              - bytes32 _organizationID: Organization ID for this contract.              - bool _allowManagedProposals: Whether or not to allow upgrade proposals from                the ManagedService contract.\"},\"returns\":{\"_0\":\"Empty bytes.\"}},\"initiateUpgrade((string,string,address,address,bytes32)[],bytes32[][])\":{\"params\":{\"_proofs\":\"Array of Merkle proofs for the targets.\",\"_targets\":\"Array of ChugSplashTarget structs containing the targets for the deployment.\"}},\"isExecuting()\":{\"returns\":{\"_0\":\"Whether or not a deployment is currently being executed.\"}},\"isProposer(address)\":{\"params\":{\"_addr\":\"Address to check.\"},\"returns\":{\"_0\":\"True if the address is allowed to propose deployments, otherwise false.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"propose(bytes32,bytes32,uint256,uint256,uint256,string,bool)\":{\"params\":{\"_actionRoot\":\"Root of the Merkle tree containing the actions for the deployment. This may be `bytes32(0)` if there are no actions in the deployment.\",\"_configUri\":\"URI pointing to the config file for the deployment.\",\"_numActions\":\"Number of actions in the deployment.\",\"_numImmutableContracts\":\"Number of non-proxy contracts in the deployment.\",\"_numTargets\":\"Number of targets in the deployment.\",\"_remoteExecution\":\"Whether or not to allow remote execution of the deployment.\",\"_targetRoot\":\"Root of the Merkle tree containing the targets for the deployment. This may be `bytes32(0)` if there are no targets in the deployment.\"}},\"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.\"},\"setProposer(address,bool)\":{\"params\":{\"_isProposer\":\"Whether or not the proposer should be added or removed.\",\"_proposer\":\"Address of the proposer to add or remove.\"}},\"totalDebt()\":{\"returns\":{\"_0\":\"Total debt owed to executors and the protocol creators.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a struct.\"}}},\"title\":\"ChugSplashManager\",\"version\":1},\"userdoc\":{\"errors\":{\"ActionAlreadyExecuted()\":[{\"notice\":\"Reverts if the action has already been executed in this deployment.\"}],\"AmountMustBeGreaterThanZero()\":[{\"notice\":\"Reverts if the amount equals zero.\"}],\"AnotherDeploymentInProgress()\":[{\"notice\":\"Reverts if there is another active deployment ID.\"}],\"CallerIsNotOwner()\":[{\"notice\":\"Reverts if the caller is not the owner.\"}],\"CallerIsNotProposer()\":[{\"notice\":\"Reverts if the caller is not a proposer.\"}],\"CallerIsNotRemoteExecutor()\":[{\"notice\":\"Reverts if the caller is not a remote executor.\"}],\"CallerIsNotSelectedExecutor()\":[{\"notice\":\"Reverts if the caller is not a selected executor.\"}],\"ContractDoesNotExist()\":[{\"notice\":\"Reverts if there is no bytecode at a given address.\"}],\"DeploymentAlreadyClaimed()\":[{\"notice\":\"Reverts if the deployment has already been claimed by another remote executor.\"}],\"DeploymentIsNotApproved()\":[{\"notice\":\"Reverts if the deployment is not in the `APPROVED` state.\"}],\"DeploymentIsNotProposed()\":[{\"notice\":\"Reverts if the deployment state is not proposed.\"}],\"DeploymentStateIsNotProposable()\":[{\"notice\":\"Reverts if the deployment state is not proposable.\"}],\"EmptyActionsArray()\":[{\"notice\":\"Reverts if an empty actions array is provided as input to the transaction.\"}],\"FailedToFinalizeUpgrade()\":[{\"notice\":\"Reverts if the call to finalize an upgrade on a proxy fails.\"}],\"FailedToGetAddress()\":[{\"notice\":\"Reverts if the low-level delegatecall to get an address fails.\"}],\"FailedToInitiateUpgrade()\":[{\"notice\":\"Reverts if the call to initiate an upgrade on a proxy fails.\"}],\"FinalizedUpgradeTooEarly()\":[{\"notice\":\"Reverts if an upgrade is completed before all of the actions have been executed.\"}],\"IncorrectNumberOfTargets()\":[{\"notice\":\"Reverts if the provided number of targets does not match the actual number of targets in the deployment.\"}],\"InitiatedUpgradeTooEarly()\":[{\"notice\":\"Reverts if an upgrade is initiated before all of the contracts are deployed via `executeActions`.\"}],\"InsufficientExecutorDebt()\":[{\"notice\":\"Reverts if the remote executor has insufficient debt in this contract.\"}],\"InsufficientFunds()\":[{\"notice\":\"Reverts if there's not enough funds in the contract pay the protocol fee and the  withdraw amount requested by the executor.\"}],\"InsufficientOwnerBond()\":[{\"notice\":\"Reverts if there isn't at least `OWNER_BOND_AMOUNT` in this contract. Only applies to deployments that will be remotely executed.\"}],\"InvalidActionType()\":[{\"notice\":\"Reverts if the action type is not `DEPLOY_CONTRACT` or `SET_STORAGE`.\"}],\"InvalidContractKind()\":[{\"notice\":\"Reverts if an invalid contract kind is provided.\"}],\"InvalidMerkleProof()\":[{\"notice\":\"Reverts if an invalid Merkle proof is provided.\"}],\"NoActiveDeployment()\":[{\"notice\":\"Reverts if there is currently no active deployment ID.\"}],\"OnlyProxiesAllowed()\":[{\"notice\":\"Reverts if a non-proxy contract type is used instead of a proxy type.\"}],\"ProxiesAreNotInitiated()\":[{\"notice\":\"Reverts if the deployment is not in the `PROXIES_INITIATED` state.\"}],\"ProxyExportFailed()\":[{\"notice\":\"Reverts if the call to export ownership of a proxy from this contract fails.\"}],\"RemoteExecutionDisabled()\":[{\"notice\":\"Reverts if a deployment can only be self-executed by the owner.\"}],\"SetStorageFailed()\":[{\"notice\":\"Reverts if the call to modify a proxy's storage slot value fails.\"}],\"WithdrawalFailed()\":[{\"notice\":\"Reverts if a withdrawal transaction fails. This is likely due to insufficient funds in this contract.\"}]},\"events\":{\"ChugSplashDeploymentApproved(bytes32)\":{\"notice\":\"Emitted when a ChugSplash deployment is approved.\"},\"ChugSplashDeploymentCancelled(bytes32,address,uint256)\":{\"notice\":\"Emitted when the owner of this contract cancels an active deployment.\"},\"ChugSplashDeploymentClaimed(bytes32,address)\":{\"notice\":\"Emitted when a deployment is claimed by a remote executor.\"},\"ChugSplashDeploymentCompleted(bytes32,address)\":{\"notice\":\"Emitted when a deployment is completed.\"},\"ChugSplashDeploymentProposed(bytes32,bytes32,bytes32,uint256,uint256,uint256,string,bool,address)\":{\"notice\":\"Emitted when a deployment is proposed.\"},\"ContractDeployed(string,address,bytes32,string,bytes32,bytes32)\":{\"notice\":\"Emitted when a contract is deployed by this contract.\"},\"ContractDeploymentSkipped(string,address,bytes32,string,uint256)\":{\"notice\":\"Emitted when a contract deployment is skipped. This occurs when a contract already exists at the Create3 address.\"},\"DeploymentFailed(string,address,bytes32,string,uint256)\":{\"notice\":\"Emitted when a deployment fails. This should only occur if the constructor of a deployed contract reverts.\"},\"ETHDeposited(address,uint256)\":{\"notice\":\"Emitted when ETH is deposited in this contract.\"},\"ExecutorPaymentClaimed(address,uint256,uint256)\":{\"notice\":\"Emitted when an executor claims a payment.\"},\"OwnerWithdrewETH(address,uint256)\":{\"notice\":\"Emitted when the owner withdraws ETH from this contract.\"},\"ProposerSet(address,bool,address)\":{\"notice\":\"Emitted when the owner of this contract adds or removes a proposer.\"},\"ProxiesInitiated(bytes32,address)\":{\"notice\":\"Emitted when a deployment is initiated.\"},\"ProxyExported(address,bytes32,address)\":{\"notice\":\"Emitted when ownership of a proxy is transferred away from this contract.\"},\"SetProxyStorage(bytes32,address,address,uint256)\":{\"notice\":\"Emitted when a storage slot in a proxy is modified.\"},\"ToggledManagedProposals(bool,address)\":{\"notice\":\"Emitted when the owner of this contract toggles the ability of the ManagedService contract to propose deployments.\"}},\"kind\":\"user\",\"methods\":{\"activeDeploymentId()\":{\"notice\":\"ID of the currently active deployment.\"},\"allowManagedProposals()\":{\"notice\":\"A boolean indicating if the owner of this contract has approved the ManagedService contract to propose deployments on their behalf.\"},\"approve(bytes32)\":{\"notice\":\"Allows the owner to approve a deployment to be executed. If remote execution is enabled, there must be at least `ownerBondAmount` deposited in this contract before the deployment can be approved. The deployment must be proposed before it can be approved.\"},\"cancelActiveChugSplashDeployment()\":{\"notice\":\"**WARNING**: Cancellation is a potentially dangerous action and should not be         executed unless in an emergency.         Allows the owner to cancel an active deployment that was approved. If an executor has not claimed the deployment, the owner is simply allowed to withdraw their bond via a subsequent call to `withdrawOwnerETH`. Otherwise, cancelling a deployment will cause the owner to forfeit their bond to the executor. This is necessary to prevent owners from trolling the remote executor by immediately cancelling and withdrawing funds.\"},\"claimDeployment()\":{\"notice\":\"Allows a remote executor to claim the sole right to execute a deployment over a period of `executionLockTime`. Only the first executor to post a bond gains this right. Executors must finish executing the deployment within `executionLockTime` or else another executor may claim the deployment.\"},\"claimExecutorPayment(uint256)\":{\"notice\":\"Allows an executor to claim its ETH payment that was earned by completing a deployment. Executors may only withdraw an amount less than or equal to the amount of ETH owed to them by this contract. We allow the executor to withdraw less than the amount owed to them because it's possible that the executor's debt exceeds the amount of ETH stored in this contract. This situation can occur when the executor completes an underfunded deployment.\"},\"create3()\":{\"notice\":\"Address of the Create3 contract.\"},\"deployments(bytes32)\":{\"notice\":\"Gets the DeploymentState struct for a given deployment ID. Note that we explicitly         define this function because the getter function auto-generated by Solidity doesn't return         array members of structs: https://github.com/ethereum/solidity/issues/12792. Without         this function, we wouldn't be able to retrieve the full `DeploymentState.actions` array.\"},\"executeActions((uint8,bytes,address,bytes32,string)[],uint256[],bytes32[][])\":{\"notice\":\"Deploys non-proxy contracts and sets proxy state variables. If the deployment does not contain any proxies, it will be completed after all of the non-proxy contracts have been deployed in this function.\"},\"executeEntireUpgrade((string,string,address,address,bytes32)[],bytes32[][],(uint8,bytes,address,bytes32,string)[],uint256[],bytes32[][])\":{\"notice\":\"Helper function that executes an entire upgrade in a single transaction. This allows the proxies in smaller upgrades to have zero downtime. This must occur after all of the `DEPLOY_CONTRACT` actions have been executed.\"},\"executionLockTime()\":{\"notice\":\"Amount of time for a remote executor to finish executing a deployment once they have claimed it.\"},\"executorDebt(address)\":{\"notice\":\"Mapping of executor addresses to the ETH amount stored in this contract that is         owed to them.\"},\"executorPaymentPercentage()\":{\"notice\":\"Percentage that the remote executor profits from a deployment. This is denominated as a percentage of the cost of execution. For example, if a deployment costs 1 gwei to execute and the executorPaymentPercentage is 10, then the executor will profit 0.1 gwei.\"},\"exportProxy(address,bytes32,address)\":{\"notice\":\"Transfers ownership of a proxy away from this contract to a specified address. Only callable by the owner. Note that this function allows the owner to send ownership of their proxy to address(0), which would make their proxy non-upgradeable.\"},\"finalizeUpgrade((string,string,address,address,bytes32)[],bytes32[][])\":{\"notice\":\"Finalizes the upgrade by upgrading all proxies to their new implementations. This         occurs in a single transaction to ensure that the upgrade is atomic.\"},\"gasPriceCalculator()\":{\"notice\":\"Address of the GasPriceCalculator contract.\"},\"gaslesslyPropose(bytes32,bytes32,uint256,uint256,uint256,string,bool)\":{\"notice\":\"Wrapper on the propose function which allows for a gasless proposal where the cost of         the using proposal is added to the protocol debt. This allows us to provide gasless         proposals using meta transactions while collecting the cost from the user after         execution completes.\"},\"getSelectedExecutor(bytes32)\":{\"notice\":\"Queries the selected executor for a given project/deployment. This will return address(0) if the deployment is being self-executed by the owner.\"},\"initialize(bytes)\":{\"notice\":\"Initializes this contract. Must only be callable one time, which should occur immediately after contract creation. This is necessary because this contract is meant to exist as an implementation behind proxies. Note that the implementation must be initialized with all zero-bytes to prevent anyone from owning it.\"},\"initiateUpgrade((string,string,address,address,bytes32)[],bytes32[][])\":{\"notice\":\"Initiate the proxies in an upgrade. This must be called after the contracts are deployment is approved, and before the rest of the execution process occurs. In this function, all of the proxies in the deployment are disabled by setting their implementations to a contract that can only be called by the team's ChugSplashManagerProxy. This must occur in a single transaction to make the process\\u00a0atomic, which means the proxies are upgraded as a single unit.\"},\"isExecuting()\":{\"notice\":\"Indicates whether or not a deployment is currently being executed.\"},\"isProposer(address)\":{\"notice\":\"Determines if a given address is allowed to propose deployments.\"},\"managedService()\":{\"notice\":\"Address of the ManagedService contract.\"},\"organizationID()\":{\"notice\":\"Organization ID for this contract.\"},\"ownerBondAmount()\":{\"notice\":\"Amount that must be stored in this contract in order to remotely execute a deployment. It is not necessary to deposit this amount if the owner is self-executing their deployment. The bond can be deposited by any account. The owner can withdraw this amount whenever a deployment is not active. However, this amount will be forfeited if the owner cancels a deployment that is in progress and within the `executionLockTime`. This is necessary to prevent owners from trolling the remote executor by immediately cancelling and withdrawing funds.\"},\"propose(bytes32,bytes32,uint256,uint256,uint256,string,bool)\":{\"notice\":\"Propose a new deployment. No action can be taken on the deployment until it is approved via the `approve` function. Only callable by the owner of this contract, a proposer that has been approved by the owner, or the ManagedService contract, if `allowManagedProposals` is true. These permissions prevent spam.\"},\"proposers(address)\":{\"notice\":\"Maps an address to a boolean indicating if the address has been approved by the owner to propose deployments. Note that this does include proposers from the managed service (see `isProposer`).\"},\"protocolPaymentPercentage()\":{\"notice\":\"Percentage that the protocol creators profit during a remotely executed deployment. This is denominated as a percentage of the cost of execution. For example, if a deployment costs 1 gwei to execute and the protocolPaymentPercentage is 10, then the protocol will profit 0.1 gwei. Note that the protocol does not profit during a self-executed deployment.\"},\"registry()\":{\"notice\":\"Address of the ChugSplashRegistry.\"},\"setProposer(address,bool)\":{\"notice\":\"Allows the owner of this contract to add or remove a proposer.\"},\"toggleAllowManagedProposals()\":{\"notice\":\"Allows the owner to toggle whether or not proposals via the ManagedService contract is allowed.\"},\"totalDebt()\":{\"notice\":\"Returns the total debt owed to executors and the protocol creators.\"},\"totalExecutorDebt()\":{\"notice\":\"Total ETH amount stored in this contract that is owed to remote executors.\"},\"totalProtocolDebt()\":{\"notice\":\"Total ETH amount stored in this contract that is owed to the protocol creators.\"},\"version()\":{\"notice\":\"Returns the full semver contract version.\"},\"withdrawOwnerETH()\":{\"notice\":\"Allows the owner to withdraw all funds in this contract minus the debt         owed to the executor and protocol. Cannot be called when there is an active deployment, as this would rug the remote executor.\"}},\"notice\":\"This contract contains the logic for managing the entire lifecycle of a project's deployments. It contains the functionality for proposing, approving, and executing deployments, paying remote executors, and exporting proxies out of the ChugSplash system if desired. It exists as a single implementation contract behind ChugSplashManagerProxy contracts. After a deployment is approved, it is executed in the following steps, which must occur in order. 1. Execute all of the `DEPLOY_CONTRACT` actions using the `executeActions` function. This is first because it's possible for the constructor of a deployed contract to revert. If this happens, we cancel the deployment before the proxies are modified in any way. 2. The `initiateProxies` function. 3. Execute all of the `SET_STORAGE` actions using the `executeActions` function. 4. The `completeUpgrade` function.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ChugSplashManager.sol\":\"ChugSplashManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts/libraries/utils/Lib_MerkleTree.sol\":{\"keccak256\":\"0x84351e7b8be5007b77a67c1e3f34f46ed0c1ddc67e4e76797fd06f01ca9325aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22ed0713a12ccabd7a9fedbb742e3d6334b894c91650861b63ea2e5859c03850\",\"dweb:/ipfs/QmbiKKsz3jpKw332tfYtXsZBh4zV8PcSushMWgDko1DJd9\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c8cb3cd19a44bbfb6612605affb7d8b06cee1f6aa9362a37a8672b4f7eeaf8\",\"dweb:/ipfs/QmasyxFDBUp7k5KFgfDWEzM8PYSKEq7GVznzMJ1VxVRF4B\"]},\"@openzeppelin/contracts-upgradeable/metatx/ERC2771ContextUpgradeable.sol\":{\"keccak256\":\"0x10d677119c17bf67ce9ba5edcfbf45ae9f086296fd37f1ccbf533344b71e6951\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://209a350bfe2df45139a9192d6aa9340229dcc0f7a6733cb15af4c6dcf1d41d82\",\"dweb:/ipfs/QmVH6iWVuER6uFRUV9gJh6zcUJh4hTvbpidnxLptsuVdrS\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb82ef33f43b6b96109687d91b39c94573fdccaaa423fe28e8ba0977b31c023e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9c629f63e66379f9c868a74f971064701cc6e30583872aa653f8b932518025\",\"dweb:/ipfs/QmY4MnZF2VMFwJkAwpdQwxEWA3KcGbNBKEmAVYePMVQWUR\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/ChugSplashManager.sol\":{\"keccak256\":\"0x9ab4fab92da54def5cce722bc55c64086466d528c07c78492b89e233a5b84e0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b17bcac7da7d3ecab04a767d60d5c86e1463c333247637d46cb5510562fd642\",\"dweb:/ipfs/QmNPaQYigqZvgFrq8R4Z3useEyYVr3hCRn3ZedEhCusVay\"]},\"contracts/ChugSplashManagerEvents.sol\":{\"keccak256\":\"0xb7a4d9c44f428c55b3b714174b0770f8402ecae923d13a85da87ebe50f930408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e37367d8713968079dcd20ef33f466e3fbc7b792292d0c90b0a02413e85349bb\",\"dweb:/ipfs/QmS8mCiyhwN2yxUVi3jCjZRSHwcraxo29neGgquJc9qwDk\"]},\"contracts/Semver.sol\":{\"keccak256\":\"0x52d8f765cd6217080ac1f72ec9e3c890266721dac6140a57191b06929d24998f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b43be60ae13919f8e4a33176b0688d862e6beb96e82061419247a76f49f3905\",\"dweb:/ipfs/QmTd8jUQs9miD6r5vKjcC1xsoMhoKECSSUiQugKn5Qsjgx\"]},\"contracts/interfaces/IChugSplashManager.sol\":{\"keccak256\":\"0x37998e41256bc1141a1942cdd3a78937624b0cf76191fdc5c31dd7d38a6683e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7071f51a896ef06e787ea998ba876d461ef6828cfa3a5c9e3b6a456efd36f8\",\"dweb:/ipfs/QmXP3vojTfjiNqvXNxprz166wJXnqMvTL3bmdNdZv9rgfG\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]},\"contracts/interfaces/ICreate3.sol\":{\"keccak256\":\"0xeeadaa461d5c3f309ed45f7060a21dc47e26e35ed94d94d27f574ba995b14f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7ade72319651066c7899e1b76723e4652ea1898ffd047d6af257223ea021ae9\",\"dweb:/ipfs/Qmew5BoRkiGhfgeRcSd3zmEn2J43sKt259kaq2ZcBhKhCX\"]},\"contracts/interfaces/IGasPriceCalculator.sol\":{\"keccak256\":\"0x04aafb0456de4888329e7e8307e059efa57216d66c4559386260f1011cf2e246\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1e45bd8f9cca7e035c000afdf44985b5b37a80c6918a9b3d31104fe5fbcf901\",\"dweb:/ipfs/QmXCBMD1ZzgrxmLCxNhVMdJaizHtJvh34Fac5WEVFjf4DQ\"]},\"contracts/interfaces/IProxyAdapter.sol\":{\"keccak256\":\"0x48f5f46c6fe6e36f52d861783e8bba551d312a41cd0abee9d256314e6b720ded\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://081672af4de6cbd120e7cda0ffee02da555550ec3858980bc76069c0d2c4e55c\",\"dweb:/ipfs/QmSNFy1mHdxSbKUvP5DJt8euJt1Gun356dqkfZHAdmUf2W\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1177,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":1180,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":1794,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":962,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":1082,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":1353,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"_status","offset":0,"slot":"101","type":"t_uint256"},{"astId":1422,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1169,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"},{"astId":5714,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"executorDebt","offset":0,"slot":"201","type":"t_mapping(t_address,t_uint256)"},{"astId":5719,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"proposers","offset":0,"slot":"202","type":"t_mapping(t_address,t_bool)"},{"astId":5725,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"_deployments","offset":0,"slot":"203","type":"t_mapping(t_bytes32,t_struct(DeploymentState)5519_storage)"},{"astId":5728,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"organizationID","offset":0,"slot":"204","type":"t_bytes32"},{"astId":5731,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"activeDeploymentId","offset":0,"slot":"205","type":"t_bytes32"},{"astId":5734,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"totalExecutorDebt","offset":0,"slot":"206","type":"t_uint256"},{"astId":5737,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"totalProtocolDebt","offset":0,"slot":"207","type":"t_uint256"},{"astId":5740,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"allowManagedProposals","offset":0,"slot":"208","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bool)dyn_storage":{"base":"t_bool","encoding":"dynamic_array","label":"bool[]","numberOfBytes":"32"},"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_enum(DeploymentStatus)5553":{"encoding":"inplace","label":"enum DeploymentStatus","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_struct(DeploymentState)5519_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct DeploymentState)","numberOfBytes":"32","value":"t_struct(DeploymentState)5519_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(DeploymentState)5519_storage":{"encoding":"inplace","label":"struct DeploymentState","members":[{"astId":5497,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"status","offset":0,"slot":"0","type":"t_enum(DeploymentStatus)5553"},{"astId":5500,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"actions","offset":0,"slot":"1","type":"t_array(t_bool)dyn_storage"},{"astId":5502,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"targets","offset":0,"slot":"2","type":"t_uint256"},{"astId":5504,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"actionRoot","offset":0,"slot":"3","type":"t_bytes32"},{"astId":5506,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"targetRoot","offset":0,"slot":"4","type":"t_bytes32"},{"astId":5508,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"numImmutableContracts","offset":0,"slot":"5","type":"t_uint256"},{"astId":5510,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"actionsExecuted","offset":0,"slot":"6","type":"t_uint256"},{"astId":5512,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"timeClaimed","offset":0,"slot":"7","type":"t_uint256"},{"astId":5514,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"selectedExecutor","offset":0,"slot":"8","type":"t_address"},{"astId":5516,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"remoteExecution","offset":20,"slot":"8","type":"t_bool"},{"astId":5518,"contract":"contracts/ChugSplashManager.sol:ChugSplashManager","label":"configUri","offset":0,"slot":"9","type":"t_string_storage"}],"numberOfBytes":"320"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/ChugSplashManagerEvents.sol":{"ChugSplashManagerEvents":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"}],"name":"ChugSplashDeploymentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"actionsExecuted","type":"uint256"}],"name":"ChugSplashDeploymentCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"executor","type":"address"}],"name":"ChugSplashDeploymentClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"executor","type":"address"}],"name":"ChugSplashDeploymentCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"actionRoot","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"targetRoot","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"numActions","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numTargets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numImmutableContracts","type":"uint256"},{"indexed":false,"internalType":"string","name":"configUri","type":"string"},{"indexed":false,"internalType":"bool","name":"remoteExecution","type":"bool"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"}],"name":"ChugSplashDeploymentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"referenceNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"},{"indexed":false,"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"creationCodeWithArgsHash","type":"bytes32"}],"name":"ContractDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"referenceNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"},{"indexed":false,"internalType":"uint256","name":"actionIndex","type":"uint256"}],"name":"ContractDeploymentSkipped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"referenceNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"expectedAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"},{"indexed":false,"internalType":"uint256","name":"actionIndex","type":"uint256"}],"name":"DeploymentFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ETHDeposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"uint256","name":"withdrawn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"remaining","type":"uint256"}],"name":"ExecutorPaymentClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OwnerWithdrewETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"bool","name":"isProposer","type":"bool"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ProposerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"executor","type":"address"}],"name":"ProxiesInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":true,"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProxyExported","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":false,"internalType":"string","name":"projectName","type":"string"},{"indexed":false,"internalType":"string","name":"referenceName","type":"string"}],"name":"ProxyUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"deploymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"uint256","name":"actionIndex","type":"uint256"}],"name":"SetProxyStorage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isManaged","type":"bool"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ToggledManagedProposals","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"57:7955:32:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"57:7955:32:-:0;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"}],\"name\":\"ChugSplashDeploymentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionsExecuted\",\"type\":\"uint256\"}],\"name\":\"ChugSplashDeploymentCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"name\":\"ChugSplashDeploymentClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"name\":\"ChugSplashDeploymentCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"actionRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"targetRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numActions\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numTargets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numImmutableContracts\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"configUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"remoteExecution\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"}],\"name\":\"ChugSplashDeploymentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"referenceNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"creationCodeWithArgsHash\",\"type\":\"bytes32\"}],\"name\":\"ContractDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"referenceNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionIndex\",\"type\":\"uint256\"}],\"name\":\"ContractDeploymentSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"referenceNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"expectedAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionIndex\",\"type\":\"uint256\"}],\"name\":\"DeploymentFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ETHDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"name\":\"ExecutorPaymentClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OwnerWithdrewETH\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isProposer\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProposerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"}],\"name\":\"ProxiesInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"ProxyExported\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"projectName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"}],\"name\":\"ProxyUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"deploymentId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actionIndex\",\"type\":\"uint256\"}],\"name\":\"SetProxyStorage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isManaged\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ToggledManagedProposals\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"ChugSplashDeploymentApproved(bytes32)\":{\"params\":{\"deploymentId\":\"ID of the deployment that was approved.\"}},\"ChugSplashDeploymentCancelled(bytes32,address,uint256)\":{\"params\":{\"actionsExecuted\":\"Total number of completed actions before cancellation.\",\"deploymentId\":\"Deployment ID that was cancelled.\",\"owner\":\"Address of the owner that cancelled the deployment.\"}},\"ChugSplashDeploymentClaimed(bytes32,address)\":{\"params\":{\"deploymentId\":\"ID of the deployment that was claimed.\",\"executor\":\"Address of the executor that claimed the deployment.\"}},\"ChugSplashDeploymentCompleted(bytes32,address)\":{\"params\":{\"deploymentId\":\"ID of the active deployment.\",\"executor\":\"Address of the caller that initiated the deployment.\"}},\"ChugSplashDeploymentProposed(bytes32,bytes32,bytes32,uint256,uint256,uint256,string,bool,address)\":{\"params\":{\"actionRoot\":\"Root of the Merkle tree containing the actions for the deployment.\",\"configUri\":\"URI of the config file that can be used to fetch the deployment.\",\"deploymentId\":\"ID of the deployment that was proposed.\",\"numActions\":\"Number of actions in the deployment.\",\"numImmutableContracts\":\"Number of non-proxy contracts in the deployment.\",\"numTargets\":\"Number of targets in the deployment.\",\"proposer\":\"Address of the account that proposed the deployment.\",\"remoteExecution\":\"Boolean indicating if the deployment should be remotely executed.\",\"targetRoot\":\"Root of the Merkle tree containing the targets for the deployment.\"}},\"ContractDeployed(string,address,bytes32,string,bytes32,bytes32)\":{\"params\":{\"contractAddress\":\"Address of the deployed contract.\",\"contractKindHash\":\"Hash of the contract kind.\",\"creationCodeWithArgsHash\":\"Hash of the creation code with constructor args.\",\"deploymentId\":\"ID of the deployment in which the contract was deployed.\",\"referenceName\":\"String reference name.\",\"referenceNameHash\":\"Hash of the reference name that corresponds to this contract.\"}},\"ContractDeploymentSkipped(string,address,bytes32,string,uint256)\":{\"params\":{\"actionIndex\":\"Index of the action that attempted to deploy the contract.\",\"contractAddress\":\"Address of the deployed contract.\",\"deploymentId\":\"ID of the deployment in which the contract was deployed.\",\"referenceName\":\"String reference name.\",\"referenceNameHash\":\"Hash of the reference name that corresponds to this contract.\"}},\"DeploymentFailed(string,address,bytes32,string,uint256)\":{\"params\":{\"actionIndex\":\"Index of the action that attempted to deploy the contract.\",\"deploymentId\":\"ID of the deployment in which the contract deployment was attempted.\",\"expectedAddress\":\"Expected Create3 address of the contract.\",\"referenceName\":\"String reference name.\",\"referenceNameHash\":\"Hash of the reference name that corresponds to this contract.\"}},\"ETHDeposited(address,uint256)\":{\"params\":{\"amount\":\"ETH amount deposited.\",\"from\":\"Address of the account that deposited ETH.\"}},\"ExecutorPaymentClaimed(address,uint256,uint256)\":{\"params\":{\"executor\":\"The executor being paid.\",\"remaining\":\"Amount of ETH remaining to be withdrawn by the executor.\",\"withdrawn\":\"Amount of ETH withdrawn.\"}},\"OwnerWithdrewETH(address,uint256)\":{\"params\":{\"amount\":\"ETH amount withdrawn.\",\"owner\":\"Address of the owner.\"}},\"ProposerSet(address,bool,address)\":{\"params\":{\"isProposer\":\"Boolean indicating if the proposer was added or removed.\",\"owner\":\"Address of the owner.\",\"proposer\":\"Address of the proposer that was added or removed.\"}},\"ProxiesInitiated(bytes32,address)\":{\"params\":{\"deploymentId\":\"ID of the active deployment.\",\"executor\":\"Address of the caller that initiated the deployment.\"}},\"ProxyExported(address,bytes32,address)\":{\"params\":{\"contractKindHash\":\"The proxy's contract kind hash, which indicates the proxy's type.\",\"newOwner\":\"Address of the new owner of the proxy.\",\"proxy\":\"Address of the proxy that was exported.\"}},\"SetProxyStorage(bytes32,address,address,uint256)\":{\"params\":{\"actionIndex\":\"Index of this action.\",\"deploymentId\":\"Current deployment ID.\",\"executor\":\"Address of the caller for this transaction.\",\"proxy\":\"Address of the proxy.\"}},\"ToggledManagedProposals(bool,address)\":{\"params\":{\"isManaged\":\"Boolean indicating if the ManagedService contract is allowed to propose deployments.\",\"owner\":\"Address of the owner.\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"ChugSplashDeploymentApproved(bytes32)\":{\"notice\":\"Emitted when a ChugSplash deployment is approved.\"},\"ChugSplashDeploymentCancelled(bytes32,address,uint256)\":{\"notice\":\"Emitted when the owner of this contract cancels an active deployment.\"},\"ChugSplashDeploymentClaimed(bytes32,address)\":{\"notice\":\"Emitted when a deployment is claimed by a remote executor.\"},\"ChugSplashDeploymentCompleted(bytes32,address)\":{\"notice\":\"Emitted when a deployment is completed.\"},\"ChugSplashDeploymentProposed(bytes32,bytes32,bytes32,uint256,uint256,uint256,string,bool,address)\":{\"notice\":\"Emitted when a deployment is proposed.\"},\"ContractDeployed(string,address,bytes32,string,bytes32,bytes32)\":{\"notice\":\"Emitted when a contract is deployed by this contract.\"},\"ContractDeploymentSkipped(string,address,bytes32,string,uint256)\":{\"notice\":\"Emitted when a contract deployment is skipped. This occurs when a contract already exists at the Create3 address.\"},\"DeploymentFailed(string,address,bytes32,string,uint256)\":{\"notice\":\"Emitted when a deployment fails. This should only occur if the constructor of a deployed contract reverts.\"},\"ETHDeposited(address,uint256)\":{\"notice\":\"Emitted when ETH is deposited in this contract.\"},\"ExecutorPaymentClaimed(address,uint256,uint256)\":{\"notice\":\"Emitted when an executor claims a payment.\"},\"OwnerWithdrewETH(address,uint256)\":{\"notice\":\"Emitted when the owner withdraws ETH from this contract.\"},\"ProposerSet(address,bool,address)\":{\"notice\":\"Emitted when the owner of this contract adds or removes a proposer.\"},\"ProxiesInitiated(bytes32,address)\":{\"notice\":\"Emitted when a deployment is initiated.\"},\"ProxyExported(address,bytes32,address)\":{\"notice\":\"Emitted when ownership of a proxy is transferred away from this contract.\"},\"SetProxyStorage(bytes32,address,address,uint256)\":{\"notice\":\"Emitted when a storage slot in a proxy is modified.\"},\"ToggledManagedProposals(bool,address)\":{\"notice\":\"Emitted when the owner of this contract toggles the ability of the ManagedService contract to propose deployments.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ChugSplashManagerEvents.sol\":\"ChugSplashManagerEvents\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/ChugSplashManagerEvents.sol\":{\"keccak256\":\"0xb7a4d9c44f428c55b3b714174b0770f8402ecae923d13a85da87ebe50f930408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e37367d8713968079dcd20ef33f466e3fbc7b792292d0c90b0a02413e85349bb\",\"dweb:/ipfs/QmS8mCiyhwN2yxUVi3jCjZRSHwcraxo29neGgquJc9qwDk\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/ChugSplashManagerProxy.sol":{"ChugSplashManagerProxy":{"abi":[{"inputs":[{"internalType":"contract ChugSplashRegistry","name":"_registry","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"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":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ChugSplashRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_398":{"entryPoint":null,"id":398,"parameterSlots":1,"returnSlots":0},"@_8257":{"entryPoint":null,"id":8257,"parameterSlots":2,"returnSlots":0},"@_changeAdmin_525":{"entryPoint":63,"id":525,"parameterSlots":1,"returnSlots":0},"@_getAdmin_572":{"entryPoint":null,"id":572,"parameterSlots":0,"returnSlots":1},"abi_decode_tuple_t_contract$_ChugSplashRegistry_$8652t_address_fromMemory":{"entryPoint":203,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"validator_revert_contract_ChugSplashRegistry":{"entryPoint":179,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:933:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"79:86:61","statements":[{"body":{"nodeType":"YulBlock","src":"143:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"152:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"145:6:61"},"nodeType":"YulFunctionCall","src":"145:12:61"},"nodeType":"YulExpressionStatement","src":"145:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"102:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"113:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"128:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"133:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"124:3:61"},"nodeType":"YulFunctionCall","src":"124:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"120:3:61"},"nodeType":"YulFunctionCall","src":"120:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"109:3:61"},"nodeType":"YulFunctionCall","src":"109:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"99:2:61"},"nodeType":"YulFunctionCall","src":"99:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"92:6:61"},"nodeType":"YulFunctionCall","src":"92:50:61"},"nodeType":"YulIf","src":"89:70:61"}]},"name":"validator_revert_contract_ChugSplashRegistry","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"68:5:61","type":""}],"src":"14:151:61"},{"body":{"nodeType":"YulBlock","src":"295:327:61","statements":[{"body":{"nodeType":"YulBlock","src":"341:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"350:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"353:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"343:6:61"},"nodeType":"YulFunctionCall","src":"343:12:61"},"nodeType":"YulExpressionStatement","src":"343:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"316:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"325:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"312:3:61"},"nodeType":"YulFunctionCall","src":"312:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"337:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"308:3:61"},"nodeType":"YulFunctionCall","src":"308:32:61"},"nodeType":"YulIf","src":"305:52:61"},{"nodeType":"YulVariableDeclaration","src":"366:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"385:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"379:5:61"},"nodeType":"YulFunctionCall","src":"379:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"370:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"449:5:61"}],"functionName":{"name":"validator_revert_contract_ChugSplashRegistry","nodeType":"YulIdentifier","src":"404:44:61"},"nodeType":"YulFunctionCall","src":"404:51:61"},"nodeType":"YulExpressionStatement","src":"404:51:61"},{"nodeType":"YulAssignment","src":"464:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"474:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"464:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"488:40:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"513:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"524:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"509:3:61"},"nodeType":"YulFunctionCall","src":"509:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"503:5:61"},"nodeType":"YulFunctionCall","src":"503:25:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"492:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"582:7:61"}],"functionName":{"name":"validator_revert_contract_ChugSplashRegistry","nodeType":"YulIdentifier","src":"537:44:61"},"nodeType":"YulFunctionCall","src":"537:53:61"},"nodeType":"YulExpressionStatement","src":"537:53:61"},{"nodeType":"YulAssignment","src":"599:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"609:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"599:6:61"}]}]},"name":"abi_decode_tuple_t_contract$_ChugSplashRegistry_$8652t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"253:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"264:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"276:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"284:6:61","type":""}],"src":"170:452:61"},{"body":{"nodeType":"YulBlock","src":"756:175:61","statements":[{"nodeType":"YulAssignment","src":"766:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"778:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"789:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"774:3:61"},"nodeType":"YulFunctionCall","src":"774:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"766:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"801:29:61","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"819:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"824:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"815:3:61"},"nodeType":"YulFunctionCall","src":"815:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"828:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"811:3:61"},"nodeType":"YulFunctionCall","src":"811:19:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"805:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"846:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"861:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"869:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"857:3:61"},"nodeType":"YulFunctionCall","src":"857:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:61"},"nodeType":"YulFunctionCall","src":"839:34:61"},"nodeType":"YulExpressionStatement","src":"839:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"893:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"904:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"889:3:61"},"nodeType":"YulFunctionCall","src":"889:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"913:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"921:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"909:3:61"},"nodeType":"YulFunctionCall","src":"909:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"882:6:61"},"nodeType":"YulFunctionCall","src":"882:43:61"},"nodeType":"YulExpressionStatement","src":"882:43:61"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"717:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"728:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"736:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"747:4:61","type":""}],"src":"627:304:61"}]},"contents":"{\n    { }\n    function validator_revert_contract_ChugSplashRegistry(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$_ChugSplashRegistry_$8652t_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_ChugSplashRegistry(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_ChugSplashRegistry(value_1)\n        value1 := value_1\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}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051610dbc380380610dbc833981016040819052610022916100cb565b8061002c8161003f565b50506001600160a01b0316608052610105565b6000610057600080516020610d9c8339815191525490565b600080516020610d9c833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6001600160a01b03811681146100c857600080fd5b50565b600080604083850312156100de57600080fd5b82516100e9816100b3565b60208401519092506100fa816100b3565b809150509250929050565b608051610c6e61012e60003960008181610108015281816103c001526106510152610c6e6000f3fe6080604052600436106100695760003560e01c80637b103999116100435780637b103999146100f65780638f2839701461012a578063f851a4401461014a57610078565b80633659cfe6146100805780634f1ef286146100a05780635c60da1b146100c957610078565b366100785761007661015f565b005b61007661015f565b34801561008c57600080fd5b5061007661009b366004610b1e565b61022f565b6100b36100ae366004610b39565b6104b8565b6040516100c09190610bbc565b60405180910390f35b3480156100d557600080fd5b506100de610753565b6040516001600160a01b0390911681526020016100c0565b34801561010257600080fd5b506100de7f000000000000000000000000000000000000000000000000000000000000000081565b34801561013657600080fd5b50610076610145366004610b1e565b6107d0565b34801561015657600080fd5b506100de61081d565b60006101897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811661020c5760405162461bcd60e51b815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e80610229573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061026e575033155b156104ad57600061029d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806103145750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103129190610c2f565b155b6103865760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015283917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d9190610c2f565b61049f5760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b6104a88361088f565b505050565b6104b561015f565b50565b60606104e27fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b031614806104ff575033155b1561074457600061052e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806105a55750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610c2f565b155b6106175760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808716600483015286917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190610c2f565b6107305760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b61073b8686866108dc565b9250505061074c565b61074c61015f565b9392505050565b600061077d7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b0316148061079a575033155b156107c557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6107cd61015f565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061080f575033155b156104ad576104b581610a0f565b60006108477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610864575033155b156107c557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b031614806108ce575033155b156104ad576104b581610aa7565b60606109067fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610923575033155b156107445761093184610aa7565b600080856001600160a01b0316858560405161094e929190610c51565b600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b509150915081610a065760405162461bcd60e51b815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c6564000000000000006064820152608401610203565b915061074c9050565b6000610a397fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80356001600160a01b0381168114610b1957600080fd5b919050565b600060208284031215610b3057600080fd5b61074c82610b02565b600080600060408486031215610b4e57600080fd5b610b5784610b02565b9250602084013567ffffffffffffffff80821115610b7457600080fd5b818601915086601f830112610b8857600080fd5b813581811115610b9757600080fd5b876020828501011115610ba957600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b81811015610be957858101830151858201604001528201610bcd565b81811115610bfb576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610c4157600080fd5b8151801515811461074c57600080fd5b818382376000910190815291905056fea164736f6c634300080f000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDBC CODESIZE SUB DUP1 PUSH2 0xDBC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0xCB JUMP JUMPDEST DUP1 PUSH2 0x2C DUP2 PUSH2 0x3F JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x105 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xD9C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xD9C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0xE9 DUP2 PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0xFA DUP2 PUSH2 0xB3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xC6E PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x108 ADD MSTORE DUP2 DUP2 PUSH2 0x3C0 ADD MSTORE PUSH2 0x651 ADD MSTORE PUSH2 0xC6E PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x69 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0x12A JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x14A JUMPI PUSH2 0x78 JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xC9 JUMPI PUSH2 0x78 JUMP JUMPDEST CALLDATASIZE PUSH2 0x78 JUMPI PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x22F JUMP JUMPDEST PUSH2 0xB3 PUSH2 0xAE CALLDATASIZE PUSH1 0x4 PUSH2 0xB39 JUMP JUMPDEST PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x7D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x81D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20C 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 0x50726F78793A20696D706C656D656E746174696F6E206E6F7420696E69746961 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C697A6564000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH2 0x229 JUMPI RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x26E JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH1 0x0 PUSH2 0x29D PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x314 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x2EE 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 0x312 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x386 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x409 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 0x42D SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x49F 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x4A8 DUP4 PUSH2 0x88F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4B5 PUSH2 0x15F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E2 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x4FF JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH1 0x0 PUSH2 0x52E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x5A5 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x57F 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 0x5A3 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x617 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x69A 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 0x6BE SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x730 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x73B DUP7 DUP7 DUP7 PUSH2 0x8DC JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x74C JUMP JUMPDEST PUSH2 0x74C PUSH2 0x15F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77D PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x79A JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x7CD PUSH2 0x15F JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x80F JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x847 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x864 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x8CE JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x906 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x923 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH2 0x931 DUP5 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x94E SWAP3 SWAP2 SWAP1 PUSH2 0xC51 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x989 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 0x98E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A2064656C656761746563616C6C20746F206E657720696D706C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D656E746174696F6E20636F6E7472616374206661696C656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x74C SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA39 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74C DUP3 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB57 DUP5 PUSH2 0xB02 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xB97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xBA9 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 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xBE9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0xBCD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x74C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB ","sourceMap":"716:2629:33:-:0;;;1848:117;;;;;;;;;;;;;;;;;;:::i;:::-;1920:6;2549:20:3;1920:6:33;2549:12:3;:20::i;:::-;-1:-1:-1;;;;;;;1938:20:33::1;;::::0;716:2629;;5227:206:3;5284:16;5303:11;-1:-1:-1;;;;;;;;;;;7120:16:3;;7002:172;5303:11;-1:-1:-1;;;;;;;;;;;5347:25:3;;;5396:30;;;-1:-1:-1;;;;;857:15:61;;;839:34;;909:15;;904:2;889:18;;882:43;5284:30:3;;-1:-1:-1;5396:30:3;;774:18:61;5396:30:3;;;;;;;5274:159;5227:206;:::o;14:151:61:-;-1:-1:-1;;;;;109:31:61;;99:42;;89:70;;155:1;152;145:12;89:70;14:151;:::o;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:61;503:25;537:53;:::i;:::-;609:7;599:17;;;170:452;;;;;:::o;627:304::-;716:2629:33;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_405":{"entryPoint":null,"id":405,"parameterSlots":0,"returnSlots":0},"@_412":{"entryPoint":null,"id":412,"parameterSlots":0,"returnSlots":0},"@_changeAdmin_525":{"entryPoint":2575,"id":525,"parameterSlots":1,"returnSlots":0},"@_doProxyCall_546":{"entryPoint":351,"id":546,"parameterSlots":0,"returnSlots":0},"@_getAdmin_572":{"entryPoint":null,"id":572,"parameterSlots":0,"returnSlots":1},"@_getImplementation_559":{"entryPoint":null,"id":559,"parameterSlots":0,"returnSlots":1},"@_setImplementation_507":{"entryPoint":2727,"id":507,"parameterSlots":1,"returnSlots":0},"@admin_483":{"entryPoint":2077,"id":483,"parameterSlots":0,"returnSlots":1},"@changeAdmin_471":{"entryPoint":2000,"id":471,"parameterSlots":1,"returnSlots":0},"@implementation_495":{"entryPoint":1875,"id":495,"parameterSlots":0,"returnSlots":1},"@registry_8198":{"entryPoint":null,"id":8198,"parameterSlots":0,"returnSlots":0},"@upgradeToAndCall_458":{"entryPoint":2268,"id":458,"parameterSlots":3,"returnSlots":1},"@upgradeToAndCall_8303":{"entryPoint":1208,"id":8303,"parameterSlots":3,"returnSlots":1},"@upgradeTo_425":{"entryPoint":2191,"id":425,"parameterSlots":1,"returnSlots":0},"@upgradeTo_8278":{"entryPoint":559,"id":8278,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":2818,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2846,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":2873,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3153,"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_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3004,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45cc171845f99e8fa73c4c3a65c67a12ab6ccab9bc31079207a49981696940b3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8e002ab6c786250dd5f580e765258ad5fb4c08aee87e5cf4c9ecd74c003c9ce4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4768:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:147:61","statements":[{"nodeType":"YulAssignment","src":"73:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:61"},"nodeType":"YulFunctionCall","src":"82:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:61"}]},{"body":{"nodeType":"YulBlock","src":"188:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"197:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"200:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"190:6:61"},"nodeType":"YulFunctionCall","src":"190:12:61"},"nodeType":"YulExpressionStatement","src":"190:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"142:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:61"},"nodeType":"YulFunctionCall","src":"131:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:61"},"nodeType":"YulFunctionCall","src":"121:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:61"},"nodeType":"YulFunctionCall","src":"114:73:61"},"nodeType":"YulIf","src":"111:93:61"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:61","type":""}],"src":"14:196:61"},{"body":{"nodeType":"YulBlock","src":"285:116:61","statements":[{"body":{"nodeType":"YulBlock","src":"331:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"340:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"343:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"333:6:61"},"nodeType":"YulFunctionCall","src":"333:12:61"},"nodeType":"YulExpressionStatement","src":"333:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"306:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"315:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"302:3:61"},"nodeType":"YulFunctionCall","src":"302:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"327:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"298:3:61"},"nodeType":"YulFunctionCall","src":"298:32:61"},"nodeType":"YulIf","src":"295:52:61"},{"nodeType":"YulAssignment","src":"356:39:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"385:9:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"366:18:61"},"nodeType":"YulFunctionCall","src":"366:29:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"356:6:61"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"251:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"262:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"274:6:61","type":""}],"src":"215:186:61"},{"body":{"nodeType":"YulBlock","src":"512:559:61","statements":[{"body":{"nodeType":"YulBlock","src":"558:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"567:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"570:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"560:6:61"},"nodeType":"YulFunctionCall","src":"560:12:61"},"nodeType":"YulExpressionStatement","src":"560:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"533:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"542:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"529:3:61"},"nodeType":"YulFunctionCall","src":"529:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"554:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"525:3:61"},"nodeType":"YulFunctionCall","src":"525:32:61"},"nodeType":"YulIf","src":"522:52:61"},{"nodeType":"YulAssignment","src":"583:39:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"612:9:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"593:18:61"},"nodeType":"YulFunctionCall","src":"593:29:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"583:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"631:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"662:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"673:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"658:3:61"},"nodeType":"YulFunctionCall","src":"658:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"645:12:61"},"nodeType":"YulFunctionCall","src":"645:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"635:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"686:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"696:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"690:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"741:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"750:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"753:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"743:6:61"},"nodeType":"YulFunctionCall","src":"743:12:61"},"nodeType":"YulExpressionStatement","src":"743:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"729:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"737:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"726:2:61"},"nodeType":"YulFunctionCall","src":"726:14:61"},"nodeType":"YulIf","src":"723:34:61"},{"nodeType":"YulVariableDeclaration","src":"766:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"780:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"791:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"776:3:61"},"nodeType":"YulFunctionCall","src":"776:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"770:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"846:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"855:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"858:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"848:6:61"},"nodeType":"YulFunctionCall","src":"848:12:61"},"nodeType":"YulExpressionStatement","src":"848:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"825:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"829:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"821:3:61"},"nodeType":"YulFunctionCall","src":"821:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"836:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"817:3:61"},"nodeType":"YulFunctionCall","src":"817:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"810:6:61"},"nodeType":"YulFunctionCall","src":"810:35:61"},"nodeType":"YulIf","src":"807:55:61"},{"nodeType":"YulVariableDeclaration","src":"871:30:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"898:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"885:12:61"},"nodeType":"YulFunctionCall","src":"885:16:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"875:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"928:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"937:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"940:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"930:6:61"},"nodeType":"YulFunctionCall","src":"930:12:61"},"nodeType":"YulExpressionStatement","src":"930:12:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"916:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"924:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:61"},"nodeType":"YulFunctionCall","src":"913:14:61"},"nodeType":"YulIf","src":"910:34:61"},{"body":{"nodeType":"YulBlock","src":"994:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1003:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1006:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"996:6:61"},"nodeType":"YulFunctionCall","src":"996:12:61"},"nodeType":"YulExpressionStatement","src":"996:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"967:2:61"},{"name":"length","nodeType":"YulIdentifier","src":"971:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:61"},"nodeType":"YulFunctionCall","src":"963:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"980:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"959:3:61"},"nodeType":"YulFunctionCall","src":"959:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"985:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"956:2:61"},"nodeType":"YulFunctionCall","src":"956:37:61"},"nodeType":"YulIf","src":"953:57:61"},{"nodeType":"YulAssignment","src":"1019:21:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1033:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1037:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1029:3:61"},"nodeType":"YulFunctionCall","src":"1029:11:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1019:6:61"}]},{"nodeType":"YulAssignment","src":"1049:16:61","value":{"name":"length","nodeType":"YulIdentifier","src":"1059:6:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1049:6:61"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"462:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"473:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"485:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"493:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"501:6:61","type":""}],"src":"406:665:61"},{"body":{"nodeType":"YulBlock","src":"1195:535:61","statements":[{"nodeType":"YulVariableDeclaration","src":"1205:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1215:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1209:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1233:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1244:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1226:6:61"},"nodeType":"YulFunctionCall","src":"1226:21:61"},"nodeType":"YulExpressionStatement","src":"1226:21:61"},{"nodeType":"YulVariableDeclaration","src":"1256:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1276:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1270:5:61"},"nodeType":"YulFunctionCall","src":"1270:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1260:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1303:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1314:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1299:3:61"},"nodeType":"YulFunctionCall","src":"1299:18:61"},{"name":"length","nodeType":"YulIdentifier","src":"1319:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1292:6:61"},"nodeType":"YulFunctionCall","src":"1292:34:61"},"nodeType":"YulExpressionStatement","src":"1292:34:61"},{"nodeType":"YulVariableDeclaration","src":"1335:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1344:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1339:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1404:90:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1433:9:61"},{"name":"i","nodeType":"YulIdentifier","src":"1444:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1429:3:61"},"nodeType":"YulFunctionCall","src":"1429:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"1448:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1425:3:61"},"nodeType":"YulFunctionCall","src":"1425:26:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1467:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"1475:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1463:3:61"},"nodeType":"YulFunctionCall","src":"1463:14:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1479:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1459:3:61"},"nodeType":"YulFunctionCall","src":"1459:23:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1453:5:61"},"nodeType":"YulFunctionCall","src":"1453:30:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1418:6:61"},"nodeType":"YulFunctionCall","src":"1418:66:61"},"nodeType":"YulExpressionStatement","src":"1418:66:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1365:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"1368:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1362:2:61"},"nodeType":"YulFunctionCall","src":"1362:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1376:19:61","statements":[{"nodeType":"YulAssignment","src":"1378:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1387:1:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1390:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:61"},"nodeType":"YulFunctionCall","src":"1383:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1378:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"1358:3:61","statements":[]},"src":"1354:140:61"},{"body":{"nodeType":"YulBlock","src":"1528:66:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1557:9:61"},{"name":"length","nodeType":"YulIdentifier","src":"1568:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1553:3:61"},"nodeType":"YulFunctionCall","src":"1553:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"1577:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1549:3:61"},"nodeType":"YulFunctionCall","src":"1549:31:61"},{"kind":"number","nodeType":"YulLiteral","src":"1582:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1542:6:61"},"nodeType":"YulFunctionCall","src":"1542:42:61"},"nodeType":"YulExpressionStatement","src":"1542:42:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1509:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"1512:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1506:2:61"},"nodeType":"YulFunctionCall","src":"1506:13:61"},"nodeType":"YulIf","src":"1503:91:61"},{"nodeType":"YulAssignment","src":"1603:121:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1619:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1638:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1646:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1634:3:61"},"nodeType":"YulFunctionCall","src":"1634:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1651:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1630:3:61"},"nodeType":"YulFunctionCall","src":"1630:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1615:3:61"},"nodeType":"YulFunctionCall","src":"1615:104:61"},{"kind":"number","nodeType":"YulLiteral","src":"1721:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1611:3:61"},"nodeType":"YulFunctionCall","src":"1611:113:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1603:4:61"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1164:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1175:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1186:4:61","type":""}],"src":"1076:654:61"},{"body":{"nodeType":"YulBlock","src":"1836:125:61","statements":[{"nodeType":"YulAssignment","src":"1846:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1858:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1869:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1854:3:61"},"nodeType":"YulFunctionCall","src":"1854:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1846:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1888:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1903:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1911:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1899:3:61"},"nodeType":"YulFunctionCall","src":"1899:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1881:6:61"},"nodeType":"YulFunctionCall","src":"1881:74:61"},"nodeType":"YulExpressionStatement","src":"1881:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1805:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1816:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1827:4:61","type":""}],"src":"1735:226:61"},{"body":{"nodeType":"YulBlock","src":"2094:125:61","statements":[{"nodeType":"YulAssignment","src":"2104:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2116:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2127:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2112:3:61"},"nodeType":"YulFunctionCall","src":"2112:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2104:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2146:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2161:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2169:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2157:3:61"},"nodeType":"YulFunctionCall","src":"2157:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2139:6:61"},"nodeType":"YulFunctionCall","src":"2139:74:61"},"nodeType":"YulExpressionStatement","src":"2139:74:61"}]},"name":"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2063:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2074:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2085:4:61","type":""}],"src":"1966:253:61"},{"body":{"nodeType":"YulBlock","src":"2398:227:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2408:6:61"},"nodeType":"YulFunctionCall","src":"2408:21:61"},"nodeType":"YulExpressionStatement","src":"2408:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2449:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2460:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2445:3:61"},"nodeType":"YulFunctionCall","src":"2445:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2465:2:61","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2438:6:61"},"nodeType":"YulFunctionCall","src":"2438:30:61"},"nodeType":"YulExpressionStatement","src":"2438:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2488:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2499:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2484:3:61"},"nodeType":"YulFunctionCall","src":"2484:18:61"},{"hexValue":"50726f78793a20696d706c656d656e746174696f6e206e6f7420696e69746961","kind":"string","nodeType":"YulLiteral","src":"2504:34:61","type":"","value":"Proxy: implementation not initia"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2477:6:61"},"nodeType":"YulFunctionCall","src":"2477:62:61"},"nodeType":"YulExpressionStatement","src":"2477:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2559:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2570:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2555:3:61"},"nodeType":"YulFunctionCall","src":"2555:18:61"},{"hexValue":"6c697a6564","kind":"string","nodeType":"YulLiteral","src":"2575:7:61","type":"","value":"lized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2548:6:61"},"nodeType":"YulFunctionCall","src":"2548:35:61"},"nodeType":"YulExpressionStatement","src":"2548:35:61"},{"nodeType":"YulAssignment","src":"2592:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2604:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2615:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2600:3:61"},"nodeType":"YulFunctionCall","src":"2600:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2592:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2375:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2389:4:61","type":""}],"src":"2224:401:61"},{"body":{"nodeType":"YulBlock","src":"2708:199:61","statements":[{"body":{"nodeType":"YulBlock","src":"2754:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2763:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2766:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2756:6:61"},"nodeType":"YulFunctionCall","src":"2756:12:61"},"nodeType":"YulExpressionStatement","src":"2756:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2729:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"2738:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2725:3:61"},"nodeType":"YulFunctionCall","src":"2725:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"2750:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2721:3:61"},"nodeType":"YulFunctionCall","src":"2721:32:61"},"nodeType":"YulIf","src":"2718:52:61"},{"nodeType":"YulVariableDeclaration","src":"2779:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2798:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2792:5:61"},"nodeType":"YulFunctionCall","src":"2792:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2783:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2861:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2870:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2873:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2863:6:61"},"nodeType":"YulFunctionCall","src":"2863:12:61"},"nodeType":"YulExpressionStatement","src":"2863:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2830:5:61"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2851:5:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2844:6:61"},"nodeType":"YulFunctionCall","src":"2844:13:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2837:6:61"},"nodeType":"YulFunctionCall","src":"2837:21:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2827:2:61"},"nodeType":"YulFunctionCall","src":"2827:32:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2820:6:61"},"nodeType":"YulFunctionCall","src":"2820:40:61"},"nodeType":"YulIf","src":"2817:60:61"},{"nodeType":"YulAssignment","src":"2886:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"2896:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2886:6:61"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2674:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2685:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2697:6:61","type":""}],"src":"2630:277:61"},{"body":{"nodeType":"YulBlock","src":"3086:235:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3103:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3114:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3096:6:61"},"nodeType":"YulFunctionCall","src":"3096:21:61"},"nodeType":"YulExpressionStatement","src":"3096:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3137:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3148:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3133:3:61"},"nodeType":"YulFunctionCall","src":"3133:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"3153:2:61","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3126:6:61"},"nodeType":"YulFunctionCall","src":"3126:30:61"},"nodeType":"YulExpressionStatement","src":"3126:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3176:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3187:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3172:3:61"},"nodeType":"YulFunctionCall","src":"3172:18:61"},{"hexValue":"4368756753706c6173684d616e6167657250726f78793a20657865637574696f","kind":"string","nodeType":"YulLiteral","src":"3192:34:61","type":"","value":"ChugSplashManagerProxy: executio"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3165:6:61"},"nodeType":"YulFunctionCall","src":"3165:62:61"},"nodeType":"YulExpressionStatement","src":"3165:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3247:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3258:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3243:3:61"},"nodeType":"YulFunctionCall","src":"3243:18:61"},{"hexValue":"6e20696e2070726f6772657373","kind":"string","nodeType":"YulLiteral","src":"3263:15:61","type":"","value":"n in progress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3236:6:61"},"nodeType":"YulFunctionCall","src":"3236:43:61"},"nodeType":"YulExpressionStatement","src":"3236:43:61"},{"nodeType":"YulAssignment","src":"3288:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3300:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3311:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3296:3:61"},"nodeType":"YulFunctionCall","src":"3296:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3288:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_45cc171845f99e8fa73c4c3a65c67a12ab6ccab9bc31079207a49981696940b3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3063:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3077:4:61","type":""}],"src":"2912:409:61"},{"body":{"nodeType":"YulBlock","src":"3500:232:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3517:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3528:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3510:6:61"},"nodeType":"YulFunctionCall","src":"3510:21:61"},"nodeType":"YulExpressionStatement","src":"3510:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3551:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3562:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3547:3:61"},"nodeType":"YulFunctionCall","src":"3547:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"3567:2:61","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3540:6:61"},"nodeType":"YulFunctionCall","src":"3540:30:61"},"nodeType":"YulExpressionStatement","src":"3540:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3590:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3601:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3586:3:61"},"nodeType":"YulFunctionCall","src":"3586:18:61"},{"hexValue":"4368756753706c6173684d616e6167657250726f78793a20756e617070726f76","kind":"string","nodeType":"YulLiteral","src":"3606:34:61","type":"","value":"ChugSplashManagerProxy: unapprov"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3579:6:61"},"nodeType":"YulFunctionCall","src":"3579:62:61"},"nodeType":"YulExpressionStatement","src":"3579:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3661:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3672:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3657:3:61"},"nodeType":"YulFunctionCall","src":"3657:18:61"},{"hexValue":"6564206d616e61676572","kind":"string","nodeType":"YulLiteral","src":"3677:12:61","type":"","value":"ed manager"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3650:6:61"},"nodeType":"YulFunctionCall","src":"3650:40:61"},"nodeType":"YulExpressionStatement","src":"3650:40:61"},{"nodeType":"YulAssignment","src":"3699:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3711:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3722:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3707:3:61"},"nodeType":"YulFunctionCall","src":"3707:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3699:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e002ab6c786250dd5f580e765258ad5fb4c08aee87e5cf4c9ecd74c003c9ce4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3477:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3491:4:61","type":""}],"src":"3326:406:61"},{"body":{"nodeType":"YulBlock","src":"3884:124:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3907:3:61"},{"name":"value0","nodeType":"YulIdentifier","src":"3912:6:61"},{"name":"value1","nodeType":"YulIdentifier","src":"3920:6:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3894:12:61"},"nodeType":"YulFunctionCall","src":"3894:33:61"},"nodeType":"YulExpressionStatement","src":"3894:33:61"},{"nodeType":"YulVariableDeclaration","src":"3936:26:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3950:3:61"},{"name":"value1","nodeType":"YulIdentifier","src":"3955:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3946:3:61"},"nodeType":"YulFunctionCall","src":"3946:16:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3940:2:61","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3978:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3982:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3971:6:61"},"nodeType":"YulFunctionCall","src":"3971:13:61"},"nodeType":"YulExpressionStatement","src":"3971:13:61"},{"nodeType":"YulAssignment","src":"3993:9:61","value":{"name":"_1","nodeType":"YulIdentifier","src":"4000:2:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3993:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3852:3:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3857:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3865:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3876:3:61","type":""}],"src":"3737:271:61"},{"body":{"nodeType":"YulBlock","src":"4187:247:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4204:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4215:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4197:6:61"},"nodeType":"YulFunctionCall","src":"4197:21:61"},"nodeType":"YulExpressionStatement","src":"4197:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4238:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4249:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4234:3:61"},"nodeType":"YulFunctionCall","src":"4234:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"4254:2:61","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4227:6:61"},"nodeType":"YulFunctionCall","src":"4227:30:61"},"nodeType":"YulExpressionStatement","src":"4227:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4277:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4288:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4273:3:61"},"nodeType":"YulFunctionCall","src":"4273:18:61"},{"hexValue":"50726f78793a2064656c656761746563616c6c20746f206e657720696d706c65","kind":"string","nodeType":"YulLiteral","src":"4293:34:61","type":"","value":"Proxy: delegatecall to new imple"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4266:6:61"},"nodeType":"YulFunctionCall","src":"4266:62:61"},"nodeType":"YulExpressionStatement","src":"4266:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4348:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4359:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4344:3:61"},"nodeType":"YulFunctionCall","src":"4344:18:61"},{"hexValue":"6d656e746174696f6e20636f6e7472616374206661696c6564","kind":"string","nodeType":"YulLiteral","src":"4364:27:61","type":"","value":"mentation contract failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4337:6:61"},"nodeType":"YulFunctionCall","src":"4337:55:61"},"nodeType":"YulExpressionStatement","src":"4337:55:61"},{"nodeType":"YulAssignment","src":"4401:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4413:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4424:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4409:3:61"},"nodeType":"YulFunctionCall","src":"4409:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4401:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4164:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4178:4:61","type":""}],"src":"4013:421:61"},{"body":{"nodeType":"YulBlock","src":"4568:198:61","statements":[{"nodeType":"YulAssignment","src":"4578:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4590:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4601:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4586:3:61"},"nodeType":"YulFunctionCall","src":"4586:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4578:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"4613:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4623:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4617:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4681:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4696:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4704:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4692:3:61"},"nodeType":"YulFunctionCall","src":"4692:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4674:6:61"},"nodeType":"YulFunctionCall","src":"4674:34:61"},"nodeType":"YulExpressionStatement","src":"4674:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4728:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4739:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4724:3:61"},"nodeType":"YulFunctionCall","src":"4724:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4748:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4756:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4744:3:61"},"nodeType":"YulFunctionCall","src":"4744:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4717:6:61"},"nodeType":"YulFunctionCall","src":"4717:43:61"},"nodeType":"YulExpressionStatement","src":"4717:43:61"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4529:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4540:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4548:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4559:4:61","type":""}],"src":"4439:327:61"}]},"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_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), 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        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), 0)\n        }\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_contract$_ChugSplashRegistry_$8652__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_203a45566c027ed7a7193ad24284294cf43e15679ba2e738446ccd540ba63e59__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), \"Proxy: implementation not initia\")\n        mstore(add(headStart, 96), \"lized\")\n        tail := add(headStart, 128)\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_45cc171845f99e8fa73c4c3a65c67a12ab6ccab9bc31079207a49981696940b3__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), \"ChugSplashManagerProxy: executio\")\n        mstore(add(headStart, 96), \"n in progress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8e002ab6c786250dd5f580e765258ad5fb4c08aee87e5cf4c9ecd74c003c9ce4__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), \"ChugSplashManagerProxy: unapprov\")\n        mstore(add(headStart, 96), \"ed manager\")\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_t_stringliteral_fef5c29b9c989f04cefa0fb0b5f840972c7bb0ea9c4fce177f28d9352d8724ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"Proxy: delegatecall to new imple\")\n        mstore(add(headStart, 96), \"mentation contract failed\")\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}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"8198":[{"length":32,"start":264},{"length":32,"start":960},{"length":32,"start":1617}]},"linkReferences":{},"object":"6080604052600436106100695760003560e01c80637b103999116100435780637b103999146100f65780638f2839701461012a578063f851a4401461014a57610078565b80633659cfe6146100805780634f1ef286146100a05780635c60da1b146100c957610078565b366100785761007661015f565b005b61007661015f565b34801561008c57600080fd5b5061007661009b366004610b1e565b61022f565b6100b36100ae366004610b39565b6104b8565b6040516100c09190610bbc565b60405180910390f35b3480156100d557600080fd5b506100de610753565b6040516001600160a01b0390911681526020016100c0565b34801561010257600080fd5b506100de7f000000000000000000000000000000000000000000000000000000000000000081565b34801561013657600080fd5b50610076610145366004610b1e565b6107d0565b34801561015657600080fd5b506100de61081d565b60006101897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811661020c5760405162461bcd60e51b815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e80610229573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061026e575033155b156104ad57600061029d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806103145750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103129190610c2f565b155b6103865760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015283917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d9190610c2f565b61049f5760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b6104a88361088f565b505050565b6104b561015f565b50565b60606104e27fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b031614806104ff575033155b1561074457600061052e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806105a55750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610c2f565b155b6106175760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808716600483015286917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190610c2f565b6107305760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b61073b8686866108dc565b9250505061074c565b61074c61015f565b9392505050565b600061077d7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b0316148061079a575033155b156107c557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6107cd61015f565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061080f575033155b156104ad576104b581610a0f565b60006108477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610864575033155b156107c557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b031614806108ce575033155b156104ad576104b581610aa7565b60606109067fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610923575033155b156107445761093184610aa7565b600080856001600160a01b0316858560405161094e929190610c51565b600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b509150915081610a065760405162461bcd60e51b815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c6564000000000000006064820152608401610203565b915061074c9050565b6000610a397fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80356001600160a01b0381168114610b1957600080fd5b919050565b600060208284031215610b3057600080fd5b61074c82610b02565b600080600060408486031215610b4e57600080fd5b610b5784610b02565b9250602084013567ffffffffffffffff80821115610b7457600080fd5b818601915086601f830112610b8857600080fd5b813581811115610b9757600080fd5b876020828501011115610ba957600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b81811015610be957858101830151858201604001528201610bcd565b81811115610bfb576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610c4157600080fd5b8151801515811461074c57600080fd5b818382376000910190815291905056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x69 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0x12A JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x14A JUMPI PUSH2 0x78 JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xC9 JUMPI PUSH2 0x78 JUMP JUMPDEST CALLDATASIZE PUSH2 0x78 JUMPI PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x22F JUMP JUMPDEST PUSH2 0xB3 PUSH2 0xAE CALLDATASIZE PUSH1 0x4 PUSH2 0xB39 JUMP JUMPDEST PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x7D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x81D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20C 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 0x50726F78793A20696D706C656D656E746174696F6E206E6F7420696E69746961 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C697A6564000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH2 0x229 JUMPI RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x26E JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH1 0x0 PUSH2 0x29D PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x314 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x2EE 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 0x312 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x386 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x409 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 0x42D SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x49F 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x4A8 DUP4 PUSH2 0x88F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4B5 PUSH2 0x15F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E2 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x4FF JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH1 0x0 PUSH2 0x52E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x5A5 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x57F 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 0x5A3 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x617 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x69A 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 0x6BE SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x730 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x73B DUP7 DUP7 DUP7 PUSH2 0x8DC JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x74C JUMP JUMPDEST PUSH2 0x74C PUSH2 0x15F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77D PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x79A JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x7CD PUSH2 0x15F JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x80F JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x847 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x864 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x8CE JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x906 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x923 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH2 0x931 DUP5 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x94E SWAP3 SWAP2 SWAP1 PUSH2 0xC51 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x989 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 0x98E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A2064656C656761746563616C6C20746F206E657720696D706C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D656E746174696F6E20636F6E7472616374206661696C656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x74C SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA39 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74C DUP3 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB57 DUP5 PUSH2 0xB02 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xB97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xBA9 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 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xBE9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0xBCD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x74C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"716:2629:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2699:14:3;:12;:14::i;:::-;716:2629:33;;2844:14:3;:12;:14::i;2352:200:33:-;;;;;;;;;;-1:-1:-1;2352:200:33;;;;;:::i;:::-;;:::i;2994:349::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4636:123:3;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1899:55:61;;;1881:74;;1869:2;1854:18;4636:123:3;1735:226:61;829:44:33;;;;;;;;;;;;;;;4191:109:3;;;;;;;;;;-1:-1:-1;4191:109:3;;;;;:::i;:::-;;:::i;4412:105::-;;;;;;;;;;;;;:::i;5514:1067::-;5557:12;5572:20;6831:18;6825:25;;6700:187;5572:20;5557:35;-1:-1:-1;;;;;;5610:18:3;;5602:68;;;;-1:-1:-1;;;5602:68:3;;2426:2:61;5602:68:3;;;2408:21:61;2465:2;2445:18;;;2438:30;2504:34;2484:18;;;2477:62;2575:7;2555:18;;;2548:35;2600:19;;5602:68:3;;;;;;;;;5792:14;5787:3;5782;5769:38;5966:3;5961;5945:14;5940:3;5934:4;5927:5;5914:56;6263:16;6258:3;6253;6238:42;6387:7;6377:80;;6426:16;6421:3;6414:29;6377:80;;6548:16;6543:3;6536:29;2352:200:33;7126:9:3;7120:16;-1:-1:-1;;;;;1912:25:3;:10;-1:-1:-1;;;;;1912:25:3;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;1019:12:33::1;1034:20;6831:18:3::0;6825:25;;6700:187;1034:20:33::1;1019:35:::0;-1:-1:-1;;;;;;1085:18:33;::::1;::::0;;:61:::1;;;1127:4;-1:-1:-1::0;;;;;1108:36:33::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1107:39;1085:61;1064:153;;;::::0;-1:-1:-1;;;1064:153:33;;3114:2:61;1064:153:33::1;::::0;::::1;3096:21:61::0;3153:2;3133:18;;;3126:30;3192:34;3172:18;;;3165:62;3263:15;3243:18;;;3236:43;3296:19;;1064:153:33::1;2912:409:61::0;1064:153:33::1;1538:48:::2;::::0;;;;-1:-1:-1;;;;;1899:55:61;;;1538:48:33::2;::::0;::::2;1881:74:61::0;2486:15:33;;1538:8:::2;:31:::0;;::::2;::::0;::::2;::::0;1854:18:61;;1538:48:33::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1517:137;;;::::0;-1:-1:-1;;;1517:137:33;;3528:2:61;1517:137:33::2;::::0;::::2;3510:21:61::0;3567:2;3547:18;;;3540:30;3606:34;3586:18;;;3579:62;3677:12;3657:18;;;3650:40;3707:19;;1517:137:33::2;3326:406:61::0;1517:137:33::2;2513:32:::3;2529:15;2513;:32::i;:::-;1227:1:::2;1009:226:::1;2352:200:::0;:::o;1908:190:3:-;2073:14;:12;:14::i;:::-;2352:200:33;:::o;2994:349::-;3255:12;1926:11:3;7126:9;7120:16;;7002:172;1926:11;-1:-1:-1;;;;;1912:25:3;:10;-1:-1:-1;;;;;1912:25:3;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;1019:12:33::1;1034:20;6831:18:3::0;6825:25;;6700:187;1034:20:33::1;1019:35:::0;-1:-1:-1;;;;;;1085:18:33;::::1;::::0;;:61:::1;;;1127:4;-1:-1:-1::0;;;;;1108:36:33::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1107:39;1085:61;1064:153;;;::::0;-1:-1:-1;;;1064:153:33;;3114:2:61;1064:153:33::1;::::0;::::1;3096:21:61::0;3153:2;3133:18;;;3126:30;3192:34;3172:18;;;3165:62;3263:15;3243:18;;;3236:43;3296:19;;1064:153:33::1;2912:409:61::0;1064:153:33::1;1538:48:::2;::::0;;;;-1:-1:-1;;;;;1899:55:61;;;1538:48:33::2;::::0;::::2;1881:74:61::0;3221:15:33;;1538:8:::2;:31:::0;;::::2;::::0;::::2;::::0;1854:18:61;;1538:48:33::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1517:137;;;::::0;-1:-1:-1;;;1517:137:33;;3528:2:61;1517:137:33::2;::::0;::::2;3510:21:61::0;3567:2;3547:18;;;3540:30;3606:34;3586:18;;;3579:62;3677:12;3657:18;;;3650:40;3707:19;;1517:137:33::2;3326:406:61::0;1517:137:33::2;3290:46:::3;3313:15;3330:5;;3290:22;:46::i;:::-;3283:53;;1227:1:::2;1009:226:::1;1908:190:3::0;;;2073:14;:12;:14::i;:::-;2994:349:33;;;;;:::o;4636:123:3:-;4706:7;1926:11;7126:9;7120:16;;7002:172;1926:11;-1:-1:-1;;;;;1912:25:3;:10;-1:-1:-1;;;;;1912:25:3;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;-1:-1:-1;6831:18:3;6825:25;;4636:123::o;1908:190::-;2073:14;:12;:14::i;:::-;4636:123;:::o;4191:109::-;7126:9;7120:16;-1:-1:-1;;;;;1912:25:3;:10;-1:-1:-1;;;;;1912:25:3;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;4273:20:::1;4286:6;4273:12;:20::i;4412:105::-:0;4473:7;1926:11;7126:9;7120:16;;7002:172;1926:11;-1:-1:-1;;;;;1912:25:3;:10;-1:-1:-1;;;;;1912:25:3;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;-1:-1:-1;7126:9:3;7120:16;;4636:123::o;3108:131::-;7126:9;7120:16;-1:-1:-1;;;;;1912:25:3;:10;-1:-1:-1;;;;;1912:25:3;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;3197:35:::1;3216:15;3197:18;:35::i;3588:436::-:0;3753:12;1926:11;7126:9;7120:16;;7002:172;1926:11;-1:-1:-1;;;;;1912:25:3;:10;-1:-1:-1;;;;;1912:25:3;;:53;;;-1:-1:-1;1941:10:3;:24;1912:53;1908:190;;;3781:35:::1;3800:15;3781:18;:35::i;:::-;3827:12;3841:23:::0;3868:15:::1;-1:-1:-1::0;;;;;3868:28:3::1;3897:5;;3868:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3826:77;;;;3921:7;3913:77;;;::::0;-1:-1:-1;;;3913:77:3;;4215:2:61;3913:77:3::1;::::0;::::1;4197:21:61::0;4254:2;4234:18;;;4227:30;4293:34;4273:18;;;4266:62;4364:27;4344:18;;;4337:55;4409:19;;3913:77:3::1;4013:421:61::0;3913:77:3::1;4007:10:::0;-1:-1:-1;1908:190:3;;-1:-1:-1;1908:190:3;5227:206;5284:16;5303:11;7126:9;7120:16;;7002:172;5303:11;5354:9;5347:25;;;5396:30;;;-1:-1:-1;;;;;4692:15:61;;;4674:34;;4744:15;;4739:2;4724:18;;4717:43;5284:30:3;;-1:-1:-1;5396:30:3;;4586:18:61;5396:30:3;;;;;;;5274:159;5227:206;:::o;4894:194::-;4996:18;4989:43;;;5056:25;;-1:-1:-1;;;;;5056:25:3;;;;;;;;4894:194;:::o;14:196:61:-;82:20;;-1:-1:-1;;;;;131:54:61;;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;1076:654::-;1186:4;1215:2;1244;1233:9;1226:21;1276:6;1270:13;1319:6;1314:2;1303:9;1299:18;1292:34;1344:1;1354:140;1368:6;1365:1;1362:13;1354:140;;;1463:14;;;1459:23;;1453:30;1429:17;;;1448:2;1425:26;1418:66;1383:10;;1354:140;;;1512:6;1509:1;1506:13;1503:91;;;1582:1;1577:2;1568:6;1557:9;1553:22;1549:31;1542:42;1503:91;-1:-1:-1;1646:2:61;1634:15;1651:66;1630:88;1615:104;;;;1721:2;1611:113;;1076:654;-1:-1:-1;;;1076:654:61:o;2630:277::-;2697:6;2750:2;2738:9;2729:7;2725:23;2721:32;2718:52;;;2766:1;2763;2756:12;2718:52;2798:9;2792:16;2851:5;2844:13;2837:21;2830:5;2827:32;2817:60;;2873:1;2870;2863:12;3737:271;3920:6;3912;3907:3;3894:33;3876:3;3946:16;;3971:13;;;3946:16;3737:271;-1:-1:-1;3737:271:61:o"},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","registry()":"7b103999","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ChugSplashRegistry\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ChugSplashRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"admin()\":{\"returns\":{\"_0\":\"Owner address.\"}},\"changeAdmin(address)\":{\"params\":{\"_admin\":\"New owner of the proxy contract.\"}},\"constructor\":{\"params\":{\"_admin\":\"Owner of this contract. Usually the end-user.\",\"_registry\":\"The ChugSplashRegistry's address.\"}},\"implementation()\":{\"returns\":{\"_0\":\"Implementation address.\"}}},\"title\":\"ChugSplashManagerProxy\",\"version\":1},\"userdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"notice\":\"An event that is emitted each time the owner is upgraded. This event is part of the         EIP-1967 specification.\"},\"Upgraded(address)\":{\"notice\":\"An event that is emitted each time the implementation is changed. This event is part         of the EIP-1967 specification.\"}},\"kind\":\"user\",\"methods\":{\"admin()\":{\"notice\":\"Gets the owner of the proxy contract.\"},\"changeAdmin(address)\":{\"notice\":\"Changes the owner of the proxy contract. Only callable by the owner.\"},\"implementation()\":{\"notice\":\"Queries the implementation address.\"},\"registry()\":{\"notice\":\"Address of the ChugSplashRegistry.\"},\"upgradeTo(address)\":{\"notice\":\"Sets a new implementation for this proxy. Only the owner can call this function. This function can only be called when a deployment is not in progress to prevent unexpected behavior. The new implementation must be approved by the ChugSplashRegistry to prevent malicious ChugSplashManager implementations.\"},\"upgradeToAndCall(address,bytes)\":{\"notice\":\"Sets a new implementation for this proxy and delegatecalls an arbitrary function. Only the owner can call this function. This function can only be called when a deployment is not in progress to prevent unexpected behavior. The new implementation must be approved by the ChugSplashRegistry to prevent malicious ChugSplashManager implementations.\"}},\"notice\":\"Proxy contract owned by the user. This contract delegatecalls into the ChugSplashManager contract to perform deployments. This proxy is designed to be upgradable by the user in a fully opt-in manner. New implementations of the ChugSplashManager must be approved by the ChugSplashRegistry contract to prevent malicious ChugSplashManager implementations from being used.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ChugSplashManagerProxy.sol\":\"ChugSplashManagerProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/ChugSplashManagerProxy.sol\":{\"keccak256\":\"0x08f7a01c1e8ed1a3ace823da2c800cac83ee0f1b686fa7d2aa9448fe9108b738\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c02af117c8c34ba3844d1a860cf5252601c649e085d33b8f1d148afa4a7e3d53\",\"dweb:/ipfs/QmSdAQDa9XkHCZ5GiG9mefe8Dyk5p54xQAfWNfy72e7dQY\"]},\"contracts/ChugSplashRegistry.sol\":{\"keccak256\":\"0xf21f036ad9a065f394db4f71f3b81a5c3bc53c82548db977a3cb4cb13045eb23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://157bbd56debc2fb38e71a25d5f07d95f177196dccf9cd9fc3c127b83e2a7edca\",\"dweb:/ipfs/QmXWqnsD1pWF1UGJ2nf553XED6TtszzoTcxeRmcj9kZSvL\"]},\"contracts/ChugSplashRegistryEvents.sol\":{\"keccak256\":\"0x118e5d3674d77632a6ef220f4e3b382874f43667cda8f4221691c8b0145361d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db406839a33143ecd104e076e325f46d571a1eb6faa7c5925f6c578b9ab3091f\",\"dweb:/ipfs/QmRLDpdGgB8erEniC17xWTRkUMAaueot1QT9mty95ugmxo\"]},\"contracts/Semver.sol\":{\"keccak256\":\"0x52d8f765cd6217080ac1f72ec9e3c890266721dac6140a57191b06929d24998f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b43be60ae13919f8e4a33176b0688d862e6beb96e82061419247a76f49f3905\",\"dweb:/ipfs/QmTd8jUQs9miD6r5vKjcC1xsoMhoKECSSUiQugKn5Qsjgx\"]},\"contracts/interfaces/IChugSplashManager.sol\":{\"keccak256\":\"0x37998e41256bc1141a1942cdd3a78937624b0cf76191fdc5c31dd7d38a6683e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7071f51a896ef06e787ea998ba876d461ef6828cfa3a5c9e3b6a456efd36f8\",\"dweb:/ipfs/QmXP3vojTfjiNqvXNxprz166wJXnqMvTL3bmdNdZv9rgfG\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/ChugSplashRegistry.sol":{"ChugSplashRegistry":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"organizationID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"managerImpl","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bytes","name":"retdata","type":"bytes"}],"name":"ChugSplashRegistrationFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"adapter","type":"address"}],"name":"ContractKindAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"eventNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"string","name":"eventName","type":"string"}],"name":"EventAnnounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"eventNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"bytes","name":"dataHash","type":"bytes"},{"indexed":false,"internalType":"string","name":"eventName","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"EventAnnouncedWithData","type":"event"},{"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":true,"internalType":"uint256","name":"major","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"minor","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"patch","type":"uint256"},{"indexed":false,"internalType":"address","name":"manager","type":"address"}],"name":"VersionAdded","type":"event"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"adapters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractKindHash","type":"bytes32"},{"internalType":"address","name":"_adapter","type":"address"}],"name":"addContractKind","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"addVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_event","type":"string"}],"name":"announce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_event","type":"string"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"announceWithData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_organizationID","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"},{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"_version","type":"tuple"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeRegistration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managerImplementations","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managerProxies","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"projects","outputs":[{"internalType":"address payable","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":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"versions","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_2208":{"entryPoint":null,"id":2208,"parameterSlots":0,"returnSlots":0},"@_8371":{"entryPoint":null,"id":8371,"parameterSlots":1,"returnSlots":0},"@_msgSender_2833":{"entryPoint":null,"id":2833,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2296":{"entryPoint":71,"id":2296,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":151,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:306:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"}]},"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":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161216838038061216883398101604081905261002f91610097565b61003833610047565b61004181610047565b506100c7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100a957600080fd5b81516001600160a01b03811681146100c057600080fd5b9392505050565b612092806100d66000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063e91204de11610066578063e91204de14610231578063ea0a523714610278578063f2fde38b1461028b578063f52cc7fd1461029e57600080fd5b80638da5cb5b146101ba578063b696e7fa146101d8578063b96ea12d146101fb57600080fd5b80634b67f1a8116100bd5780634b67f1a814610144578063715018a61461015757806372c6838f1461015f57600080fd5b806311cdf27a146100e4578063204bbec7146100f957806331662fd614610131575b600080fd5b6100f76100f2366004610dfe565b6102b1565b005b61011c610107366004610dfe565b60046020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100f761013f366004610efe565b6104b9565b6100f7610152366004610fcc565b61094a565b6100f7610a75565b61019561016d366004610ff8565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610128565b60005473ffffffffffffffffffffffffffffffffffffffff16610195565b61011c6101e6366004610dfe565b60026020526000908152604090205460ff1681565b610195610209366004610ff8565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61019561023f366004611011565b600560209081526000938452604080852082529284528284209052825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6100f761028636600461103d565b610a89565b6100f7610299366004610dfe565b610b60565b6100f76102ac36600461107a565b610bfd565b6102b9610cec565b60008173ffffffffffffffffffffffffffffffffffffffff166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a91906110de565b80516020808301516040808501516000858152600585528281208482528552828120828252909452922054939450919273ffffffffffffffffffffffffffffffffffffffff16156103e85760405162461bcd60e51b815260206004820152602760248201527f4368756753706c61736852656769737472793a2076657273696f6e20616c726560448201527f616479207365740000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905586835260058252808320868452825280832085845282529182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905590519182528291849186917fad4f648400b850e9d053dbbd943dc1f16f1dd948913439a82886d60b875fa961910160405180910390a45050505050565b60008481526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16156105515760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c61736852656769737472793a206f726720494420616c72656160448201527f647920726567697374657265640000000000000000000000000000000000000060648201526084016103df565b81516000908152600560209081526040808320828601518452825280832081860151845282528083205473ffffffffffffffffffffffffffffffffffffffff1680845260049092529091205460ff166106125760405162461bcd60e51b815260206004820152602b60248201527f4368756753706c61736852656769737472793a20696e76616c6964206d616e6160448201527f6765722076657273696f6e00000000000000000000000000000000000000000060648201526084016103df565b600085303060405161062390610dc8565b73ffffffffffffffffffffffffffffffffffffffff9283168152911660208201526040018190604051809103906000f5905080158015610667573d6000803e3d6000fd5b50905073ffffffffffffffffffffffffffffffffffffffff81166106f35760405162461bcd60e51b815260206004820152603260248201527f4368756753706c61736852656769737472793a206661696c656420746f20646560448201527f706c6f79206d616e616765722070726f7879000000000000000000000000000060648201526084016103df565b600086815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155808552600290925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051634f1ef286908590610792908890602401611196565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f439fab9100000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526108229291906004016111a9565b6000604051808303816000875af1158015610841573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261086991908101906111d8565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015291925090831690638f28397090602401600060405180830381600087803b1580156108d657600080fd5b505af11580156108ea573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16877f34f01ac8697184bb2b594a525aaf915e28334b8ee9ce73d80e3d0d08fadcd3418833856040516109399392919061124f565b60405180910390a350505050505050565b610952610cec565b60008281526003602052604090205473ffffffffffffffffffffffffffffffffffffffff16156109ea5760405162461bcd60e51b815260206004820152603960248201527f4368756753706c61736852656769737472793a20636f6e7472616374206b696e60448201527f642068617320616e206578697374696e6720616461707465720000000000000060648201526084016103df565b60008281526003602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fb2ae55a73412ceef617c2ecead73f8d660a4904740fa33d050ae5d8b517d7b47910160405180910390a15050565b610a7d610cec565b610a876000610d53565b565b3360009081526002602052604090205460ff16610b0e5760405162461bcd60e51b815260206004820152603c60248201527f4368756753706c61736852656769737472793a206576656e74732063616e206f60448201527f6e6c7920626520616e6e6f756e636564206279206d616e61676572730000000060648201526084016103df565b6040513390610b1e908390611288565b60405180910390207f795f66a5da2addfeb09f1b32396ff2be31a38ebe0f85fae32133a226dbe065b383604051610b559190611196565b60405180910390a350565b610b68610cec565b73ffffffffffffffffffffffffffffffffffffffff8116610bf15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103df565b610bfa81610d53565b50565b3360009081526002602052604090205460ff16610c825760405162461bcd60e51b815260206004820152603c60248201527f4368756753706c61736852656769737472793a206576656e74732063616e206f60448201527f6e6c7920626520616e6e6f756e636564206279206d616e61676572730000000060648201526084016103df565b80604051610c909190611288565b604051908190038120903390610ca7908590611288565b60405180910390207f524ccd226c22cefbc337f02a4ec771a77e2df0925309645b4e79d650f11e2aa08585604051610ce09291906112a4565b60405180910390a45050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103df565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dbc806112ca83390190565b803573ffffffffffffffffffffffffffffffffffffffff81168114610df957600080fd5b919050565b600060208284031215610e1057600080fd5b610e1982610dd5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e7857610e78610e20565b604052919050565b600067ffffffffffffffff821115610e9a57610e9a610e20565b50601f01601f191660200190565b600082601f830112610eb957600080fd5b8135610ecc610ec782610e80565b610e4f565b818152846020838601011115610ee157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008084860360c0811215610f1557600080fd5b85359450610f2560208701610dd5565b935060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215610f5757600080fd5b506040516060810167ffffffffffffffff8282108183111715610f7c57610f7c610e20565b8160405260408801358352606088013560208401526080880135604084015282945060a0880135925080831115610fb257600080fd5b5050610fc087828801610ea8565b91505092959194509250565b60008060408385031215610fdf57600080fd5b82359150610fef60208401610dd5565b90509250929050565b60006020828403121561100a57600080fd5b5035919050565b60008060006060848603121561102657600080fd5b505081359360208301359350604090920135919050565b60006020828403121561104f57600080fd5b813567ffffffffffffffff81111561106657600080fd5b61107284828501610ea8565b949350505050565b6000806040838503121561108d57600080fd5b823567ffffffffffffffff808211156110a557600080fd5b6110b186838701610ea8565b935060208501359150808211156110c757600080fd5b506110d485828601610ea8565b9150509250929050565b6000606082840312156110f057600080fd5b6040516060810181811067ffffffffffffffff8211171561111357611113610e20565b80604052508251815260208301516020820152604083015160408201528091505092915050565b60005b8381101561115557818101518382015260200161113d565b83811115611164576000848401525b50505050565b6000815180845261118281602086016020860161113a565b601f01601f19169290920160200192915050565b602081526000610e19602083018461116a565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000611072604083018461116a565b6000602082840312156111ea57600080fd5b815167ffffffffffffffff81111561120157600080fd5b8201601f8101841361121257600080fd5b8051611220610ec782610e80565b81815285602083850101111561123557600080fd5b61124682602083016020860161113a565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611246606083018461116a565b6000825161129a81846020870161113a565b9190910192915050565b6040815260006112b7604083018561116a565b8281036020840152611246818561116a56fe60a0604052604051610dbc380380610dbc833981016040819052610022916100cb565b8061002c8161003f565b50506001600160a01b0316608052610105565b6000610057600080516020610d9c8339815191525490565b600080516020610d9c833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6001600160a01b03811681146100c857600080fd5b50565b600080604083850312156100de57600080fd5b82516100e9816100b3565b60208401519092506100fa816100b3565b809150509250929050565b608051610c6e61012e60003960008181610108015281816103c001526106510152610c6e6000f3fe6080604052600436106100695760003560e01c80637b103999116100435780637b103999146100f65780638f2839701461012a578063f851a4401461014a57610078565b80633659cfe6146100805780634f1ef286146100a05780635c60da1b146100c957610078565b366100785761007661015f565b005b61007661015f565b34801561008c57600080fd5b5061007661009b366004610b1e565b61022f565b6100b36100ae366004610b39565b6104b8565b6040516100c09190610bbc565b60405180910390f35b3480156100d557600080fd5b506100de610753565b6040516001600160a01b0390911681526020016100c0565b34801561010257600080fd5b506100de7f000000000000000000000000000000000000000000000000000000000000000081565b34801561013657600080fd5b50610076610145366004610b1e565b6107d0565b34801561015657600080fd5b506100de61081d565b60006101897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811661020c5760405162461bcd60e51b815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e80610229573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061026e575033155b156104ad57600061029d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806103145750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103129190610c2f565b155b6103865760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015283917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d9190610c2f565b61049f5760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b6104a88361088f565b505050565b6104b561015f565b50565b60606104e27fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b031614806104ff575033155b1561074457600061052e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806105a55750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610c2f565b155b6106175760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808716600483015286917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190610c2f565b6107305760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b61073b8686866108dc565b9250505061074c565b61074c61015f565b9392505050565b600061077d7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b0316148061079a575033155b156107c557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6107cd61015f565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061080f575033155b156104ad576104b581610a0f565b60006108477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610864575033155b156107c557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b031614806108ce575033155b156104ad576104b581610aa7565b60606109067fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610923575033155b156107445761093184610aa7565b600080856001600160a01b0316858560405161094e929190610c51565b600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b509150915081610a065760405162461bcd60e51b815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c6564000000000000006064820152608401610203565b915061074c9050565b6000610a397fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80356001600160a01b0381168114610b1957600080fd5b919050565b600060208284031215610b3057600080fd5b61074c82610b02565b600080600060408486031215610b4e57600080fd5b610b5784610b02565b9250602084013567ffffffffffffffff80821115610b7457600080fd5b818601915086601f830112610b8857600080fd5b813581811115610b9757600080fd5b876020828501011115610ba957600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b81811015610be957858101830151858201604001528201610bcd565b81811115610bfb576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610c4157600080fd5b8151801515811461074c57600080fd5b818382376000910190815291905056fea164736f6c634300080f000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2168 CODESIZE SUB DUP1 PUSH2 0x2168 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x97 JUMP JUMPDEST PUSH2 0x38 CALLER PUSH2 0x47 JUMP JUMPDEST PUSH2 0x41 DUP2 PUSH2 0x47 JUMP JUMPDEST POP PUSH2 0xC7 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 PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2092 DUP1 PUSH2 0xD6 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 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xE91204DE GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE91204DE EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0xEA0A5237 EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0xF52CC7FD EQ PUSH2 0x29E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0xB696E7FA EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0xB96EA12D EQ PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4B67F1A8 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x4B67F1A8 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x72C6838F EQ PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x11CDF27A EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x204BBEC7 EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x31662FD6 EQ PUSH2 0x131 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH2 0x2B1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x4 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 0xF7 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0xEFE JUMP JUMPDEST PUSH2 0x4B9 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0xFCC JUMP JUMPDEST PUSH2 0x94A JUMP JUMPDEST PUSH2 0xF7 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x128 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x195 JUMP JUMPDEST PUSH2 0x11C PUSH2 0x1E6 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x1011 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP3 MSTORE SWAP3 DUP5 MSTORE DUP3 DUP5 KECCAK256 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x103D JUMP JUMPDEST PUSH2 0xA89 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x299 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH2 0xB60 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0x107A JUMP JUMPDEST PUSH2 0xBFD JUMP JUMPDEST PUSH2 0x2B9 PUSH2 0xCEC JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x54FD4D50 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x306 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 0x32A SWAP2 SWAP1 PUSH2 0x10DE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 DUP6 MSTORE DUP3 DUP2 KECCAK256 DUP5 DUP3 MSTORE DUP6 MSTORE DUP3 DUP2 KECCAK256 DUP3 DUP3 MSTORE SWAP1 SWAP5 MSTORE SWAP3 KECCAK256 SLOAD SWAP4 SWAP5 POP SWAP2 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x3E8 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 0x4368756753706C61736852656769737472793A2076657273696F6E20616C7265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6164792073657400000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP7 DUP4 MSTORE PUSH1 0x5 DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND DUP5 OR SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE DUP3 SWAP2 DUP5 SWAP2 DUP7 SWAP2 PUSH32 0xAD4F648400B850E9D053DBBD943DC1F16F1DD948913439A82886D60B875FA961 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x551 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 0x4368756753706C61736852656769737472793A206F726720494420616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6479207265676973746572656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP3 DUP7 ADD MLOAD DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 DUP7 ADD MLOAD DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 DUP5 MSTORE PUSH1 0x4 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x612 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 0x4368756753706C61736852656769737472793A20696E76616C6964206D616E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6765722076657273696F6E000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x0 DUP6 ADDRESS ADDRESS PUSH1 0x40 MLOAD PUSH2 0x623 SWAP1 PUSH2 0xDC8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x6F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C61736852656769737472793A206661696C656420746F206465 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x706C6F79206D616E616765722070726F78790000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP1 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD PUSH4 0x4F1EF286 SWAP1 DUP6 SWAP1 PUSH2 0x792 SWAP1 DUP9 SWAP1 PUSH1 0x24 ADD PUSH2 0x1196 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x439FAB9100000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x822 SWAP3 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x11A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x841 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 0x869 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x11D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8F28397000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH32 0x34F01AC8697184BB2B594A525AAF915E28334B8EE9CE73D80E3D0D08FADCD341 DUP9 CALLER DUP6 PUSH1 0x40 MLOAD PUSH2 0x939 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x124F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x952 PUSH2 0xCEC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x9EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C61736852656769737472793A20636F6E7472616374206B696E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x642068617320616E206578697374696E67206164617074657200000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP6 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0xB2AE55A73412CEEF617C2ECEAD73F8D660A4904740FA33D050AE5D8B517D7B47 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xA7D PUSH2 0xCEC JUMP JUMPDEST PUSH2 0xA87 PUSH1 0x0 PUSH2 0xD53 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xB0E 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 0x4368756753706C61736852656769737472793A206576656E74732063616E206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6C7920626520616E6E6F756E636564206279206D616E616765727300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD CALLER SWAP1 PUSH2 0xB1E SWAP1 DUP4 SWAP1 PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x795F66A5DA2ADDFEB09F1B32396FF2BE31A38EBE0F85FAE32133A226DBE065B3 DUP4 PUSH1 0x40 MLOAD PUSH2 0xB55 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0xB68 PUSH2 0xCEC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xBF1 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 0x3DF JUMP JUMPDEST PUSH2 0xBFA DUP2 PUSH2 0xD53 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC82 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 0x4368756753706C61736852656769737472793A206576656E74732063616E206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6C7920626520616E6E6F756E636564206279206D616E616765727300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 CALLER SWAP1 PUSH2 0xCA7 SWAP1 DUP6 SWAP1 PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x524CCD226C22CEFBC337F02A4EC771A77E2DF0925309645B4E79D650F11E2AA0 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xCE0 SWAP3 SWAP2 SWAP1 PUSH2 0x12A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xA87 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 0x3DF 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 PUSH2 0xDBC DUP1 PUSH2 0x12CA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xDF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE19 DUP3 PUSH2 0xDD5 JUMP JUMPDEST SWAP4 SWAP3 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 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE78 JUMPI PUSH2 0xE78 PUSH2 0xE20 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE9A JUMPI PUSH2 0xE9A PUSH2 0xE20 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 0xEB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xECC PUSH2 0xEC7 DUP3 PUSH2 0xE80 JUMP JUMPDEST PUSH2 0xE4F JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xEE1 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 0x0 DUP1 DUP5 DUP7 SUB PUSH1 0xC0 DUP2 SLT ISZERO PUSH2 0xF15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0xF25 PUSH1 0x20 DUP8 ADD PUSH2 0xDD5 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 DUP3 ADD SLT ISZERO PUSH2 0xF57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP3 DUP3 LT DUP2 DUP4 GT OR ISZERO PUSH2 0xF7C JUMPI PUSH2 0xF7C PUSH2 0xE20 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE PUSH1 0x40 DUP9 ADD CALLDATALOAD DUP4 MSTORE PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0x40 DUP5 ADD MSTORE DUP3 SWAP5 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0xFB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0xFC0 DUP8 DUP3 DUP9 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xFEF PUSH1 0x20 DUP5 ADD PUSH2 0xDD5 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x100A 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 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x104F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1072 DUP5 DUP3 DUP6 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x108D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x10A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10B1 DUP7 DUP4 DUP8 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D4 DUP6 DUP3 DUP7 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1113 JUMPI PUSH2 0x1113 PUSH2 0xE20 JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1155 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x113D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1164 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1182 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x113A 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 0xE19 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x116A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1072 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x116A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x1212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x1220 PUSH2 0xEC7 DUP3 PUSH2 0xE80 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1246 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x113A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP 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 0x1246 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x116A JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x129A DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x113A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x12B7 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x116A JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1246 DUP2 DUP6 PUSH2 0x116A JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDBC CODESIZE SUB DUP1 PUSH2 0xDBC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0xCB JUMP JUMPDEST DUP1 PUSH2 0x2C DUP2 PUSH2 0x3F JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x105 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xD9C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xD9C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0xE9 DUP2 PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0xFA DUP2 PUSH2 0xB3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xC6E PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x108 ADD MSTORE DUP2 DUP2 PUSH2 0x3C0 ADD MSTORE PUSH2 0x651 ADD MSTORE PUSH2 0xC6E PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x69 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0x12A JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x14A JUMPI PUSH2 0x78 JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xC9 JUMPI PUSH2 0x78 JUMP JUMPDEST CALLDATASIZE PUSH2 0x78 JUMPI PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x22F JUMP JUMPDEST PUSH2 0xB3 PUSH2 0xAE CALLDATASIZE PUSH1 0x4 PUSH2 0xB39 JUMP JUMPDEST PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x7D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x81D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20C 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 0x50726F78793A20696D706C656D656E746174696F6E206E6F7420696E69746961 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C697A6564000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH2 0x229 JUMPI RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x26E JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH1 0x0 PUSH2 0x29D PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x314 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x2EE 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 0x312 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x386 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x409 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 0x42D SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x49F 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x4A8 DUP4 PUSH2 0x88F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4B5 PUSH2 0x15F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E2 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x4FF JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH1 0x0 PUSH2 0x52E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x5A5 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x57F 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 0x5A3 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x617 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x69A 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 0x6BE SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x730 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x73B DUP7 DUP7 DUP7 PUSH2 0x8DC JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x74C JUMP JUMPDEST PUSH2 0x74C PUSH2 0x15F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77D PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x79A JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x7CD PUSH2 0x15F JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x80F JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x847 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x864 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x8CE JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x906 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x923 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH2 0x931 DUP5 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x94E SWAP3 SWAP2 SWAP1 PUSH2 0xC51 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x989 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 0x98E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A2064656C656761746563616C6C20746F206E657720696D706C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D656E746174696F6E20636F6E7472616374206661696C656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x74C SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA39 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74C DUP3 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB57 DUP5 PUSH2 0xB02 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xB97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xBA9 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 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xBE9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0xBCD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x74C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"1242:5814:34:-:0;;;2388:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:13;719:10:17;936:18:13;:32::i;:::-;2426:26:34;2445:6;2426:18;:26::i;:::-;2388:71;1242:5814;;2426:187:13;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:13;;;-1:-1:-1;;;;;;2534:17:13;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:290:61:-;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;:::-;1242:5814:34;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_2239":{"entryPoint":3308,"id":2239,"parameterSlots":0,"returnSlots":0},"@_msgSender_2833":{"entryPoint":null,"id":2833,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_2296":{"entryPoint":3411,"id":2296,"parameterSlots":1,"returnSlots":0},"@adapters_8346":{"entryPoint":null,"id":8346,"parameterSlots":0,"returnSlots":0},"@addContractKind_8579":{"entryPoint":2378,"id":8579,"parameterSlots":2,"returnSlots":0},"@addVersion_8651":{"entryPoint":689,"id":8651,"parameterSlots":1,"returnSlots":0},"@announceWithData_8545":{"entryPoint":3069,"id":8545,"parameterSlots":2,"returnSlots":0},"@announce_8519":{"entryPoint":2697,"id":8519,"parameterSlots":1,"returnSlots":0},"@finalizeRegistration_8497":{"entryPoint":1209,"id":8497,"parameterSlots":4,"returnSlots":0},"@managerImplementations_8351":{"entryPoint":null,"id":8351,"parameterSlots":0,"returnSlots":0},"@managerProxies_8341":{"entryPoint":null,"id":8341,"parameterSlots":0,"returnSlots":0},"@owner_2225":{"entryPoint":null,"id":2225,"parameterSlots":0,"returnSlots":1},"@projects_8336":{"entryPoint":null,"id":8336,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_2253":{"entryPoint":2677,"id":2253,"parameterSlots":0,"returnSlots":0},"@transferOwnership_2276":{"entryPoint":2912,"id":2276,"parameterSlots":1,"returnSlots":0},"@versions_8360":{"entryPoint":null,"id":8360,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":3541,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":3752,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3582,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":4088,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":4044,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_addresst_struct$_Version_$5567_memory_ptrt_bytes_memory_ptr":{"entryPoint":3838,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":4568,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":4157,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_bytes_memory_ptr":{"entryPoint":4218,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_Version_$5567_memory_ptr_fromMemory":{"entryPoint":4318,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_uint256":{"entryPoint":4113,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_bytes":{"entryPoint":4458,"id":null,"parameterSlots":2,"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_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4744,"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_payable__to_t_address_payable__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr__to_t_address_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4687,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4521,"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_t_address__to_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4502,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652_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":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4772,"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_4831d89bdcb36267605b80783dff59fda98f7cf13e280af80e15c810474e8dc3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5cf61b6db62b7b4a11cfa3710fb6ace078799e9fd5c01f362c0b2c93119ee684__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_706209a87814ddbae2965277b436e11663351c371f6f39a43909ee8f1fb6c13e__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_a3eec6b4be813f9d76b8a1a0a8912fa8732767c03a9e25bd803c1e373a26a5ca__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a86248a7b9786df3e2a168bab6a551b9403c1c6ff3d83fca0c4e91f03cb8fe15__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dba88b58b3a7016c57fa76f4ffccc408c75e04183c0935ce3ef2b4402652ef6d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":3663,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":3712,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":4410,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":3616,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:12927:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:147:61","statements":[{"nodeType":"YulAssignment","src":"73:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:61"},"nodeType":"YulFunctionCall","src":"82:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:61"}]},{"body":{"nodeType":"YulBlock","src":"188:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"197:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"200:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"190:6:61"},"nodeType":"YulFunctionCall","src":"190:12:61"},"nodeType":"YulExpressionStatement","src":"190:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"142:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:61"},"nodeType":"YulFunctionCall","src":"131:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:61"},"nodeType":"YulFunctionCall","src":"121:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:61"},"nodeType":"YulFunctionCall","src":"114:73:61"},"nodeType":"YulIf","src":"111:93:61"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:61","type":""}],"src":"14:196:61"},{"body":{"nodeType":"YulBlock","src":"285:116:61","statements":[{"body":{"nodeType":"YulBlock","src":"331:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"340:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"343:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"333:6:61"},"nodeType":"YulFunctionCall","src":"333:12:61"},"nodeType":"YulExpressionStatement","src":"333:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"306:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"315:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"302:3:61"},"nodeType":"YulFunctionCall","src":"302:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"327:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"298:3:61"},"nodeType":"YulFunctionCall","src":"298:32:61"},"nodeType":"YulIf","src":"295:52:61"},{"nodeType":"YulAssignment","src":"356:39:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"385:9:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"366:18:61"},"nodeType":"YulFunctionCall","src":"366:29:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"356:6:61"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"251:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"262:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"274:6:61","type":""}],"src":"215:186:61"},{"body":{"nodeType":"YulBlock","src":"501:92:61","statements":[{"nodeType":"YulAssignment","src":"511:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"523:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"534:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"519:3:61"},"nodeType":"YulFunctionCall","src":"519:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"511:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"553:9:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"578:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"571:6:61"},"nodeType":"YulFunctionCall","src":"571:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"564:6:61"},"nodeType":"YulFunctionCall","src":"564:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"546:6:61"},"nodeType":"YulFunctionCall","src":"546:41:61"},"nodeType":"YulExpressionStatement","src":"546:41:61"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"470:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"481:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"492:4:61","type":""}],"src":"406:187:61"},{"body":{"nodeType":"YulBlock","src":"630:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"647:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"650:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"640:6:61"},"nodeType":"YulFunctionCall","src":"640:88:61"},"nodeType":"YulExpressionStatement","src":"640:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"747:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"737:6:61"},"nodeType":"YulFunctionCall","src":"737:15:61"},"nodeType":"YulExpressionStatement","src":"737:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"768:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"771:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"761:6:61"},"nodeType":"YulFunctionCall","src":"761:15:61"},"nodeType":"YulExpressionStatement","src":"761:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"598:184:61"},{"body":{"nodeType":"YulBlock","src":"832:289:61","statements":[{"nodeType":"YulAssignment","src":"842:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"858:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"852:5:61"},"nodeType":"YulFunctionCall","src":"852:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"842:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"870:117:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"892:6:61"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"908:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"914:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"904:3:61"},"nodeType":"YulFunctionCall","src":"904:13:61"},{"kind":"number","nodeType":"YulLiteral","src":"919:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"900:3:61"},"nodeType":"YulFunctionCall","src":"900:86:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"888:3:61"},"nodeType":"YulFunctionCall","src":"888:99:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"874:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1062:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1064:16:61"},"nodeType":"YulFunctionCall","src":"1064:18:61"},"nodeType":"YulExpressionStatement","src":"1064:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1005:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"1017:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1002:2:61"},"nodeType":"YulFunctionCall","src":"1002:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1041:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1053:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1038:2:61"},"nodeType":"YulFunctionCall","src":"1038:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"999:2:61"},"nodeType":"YulFunctionCall","src":"999:62:61"},"nodeType":"YulIf","src":"996:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1100:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1104:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1093:6:61"},"nodeType":"YulFunctionCall","src":"1093:22:61"},"nodeType":"YulExpressionStatement","src":"1093:22:61"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"812:4:61","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"821:6:61","type":""}],"src":"787:334:61"},{"body":{"nodeType":"YulBlock","src":"1183:188:61","statements":[{"body":{"nodeType":"YulBlock","src":"1227:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1229:16:61"},"nodeType":"YulFunctionCall","src":"1229:18:61"},"nodeType":"YulExpressionStatement","src":"1229:18:61"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1199:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1207:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1196:2:61"},"nodeType":"YulFunctionCall","src":"1196:30:61"},"nodeType":"YulIf","src":"1193:56:61"},{"nodeType":"YulAssignment","src":"1258:107:61","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1278:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1286:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1274:3:61"},"nodeType":"YulFunctionCall","src":"1274:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1291:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1270:3:61"},"nodeType":"YulFunctionCall","src":"1270:88:61"},{"kind":"number","nodeType":"YulLiteral","src":"1360:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1266:3:61"},"nodeType":"YulFunctionCall","src":"1266:99:61"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1258:4:61"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"1163:6:61","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"1174:4:61","type":""}],"src":"1126:245:61"},{"body":{"nodeType":"YulBlock","src":"1428:410:61","statements":[{"body":{"nodeType":"YulBlock","src":"1477:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1486:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1489:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1479:6:61"},"nodeType":"YulFunctionCall","src":"1479:12:61"},"nodeType":"YulExpressionStatement","src":"1479:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1456:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1464:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1452:3:61"},"nodeType":"YulFunctionCall","src":"1452:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"1471:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1448:3:61"},"nodeType":"YulFunctionCall","src":"1448:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1441:6:61"},"nodeType":"YulFunctionCall","src":"1441:35:61"},"nodeType":"YulIf","src":"1438:55:61"},{"nodeType":"YulVariableDeclaration","src":"1502:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1525:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1512:12:61"},"nodeType":"YulFunctionCall","src":"1512:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1506:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1541:63:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1600:2:61"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"1572:27:61"},"nodeType":"YulFunctionCall","src":"1572:31:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1556:15:61"},"nodeType":"YulFunctionCall","src":"1556:48:61"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1545:7:61","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1620:7:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1629:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1613:6:61"},"nodeType":"YulFunctionCall","src":"1613:19:61"},"nodeType":"YulExpressionStatement","src":"1613:19:61"},{"body":{"nodeType":"YulBlock","src":"1680:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1689:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1692:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1682:6:61"},"nodeType":"YulFunctionCall","src":"1682:12:61"},"nodeType":"YulExpressionStatement","src":"1682:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1655:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1663:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1651:3:61"},"nodeType":"YulFunctionCall","src":"1651:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1668:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1647:3:61"},"nodeType":"YulFunctionCall","src":"1647:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"1675:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1644:2:61"},"nodeType":"YulFunctionCall","src":"1644:35:61"},"nodeType":"YulIf","src":"1641:55:61"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1722:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"1731:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1718:3:61"},"nodeType":"YulFunctionCall","src":"1718:18:61"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1742:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1750:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1738:3:61"},"nodeType":"YulFunctionCall","src":"1738:17:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1757:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1705:12:61"},"nodeType":"YulFunctionCall","src":"1705:55:61"},"nodeType":"YulExpressionStatement","src":"1705:55:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1784:7:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1793:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1780:3:61"},"nodeType":"YulFunctionCall","src":"1780:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"1798:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1776:3:61"},"nodeType":"YulFunctionCall","src":"1776:27:61"},{"kind":"number","nodeType":"YulLiteral","src":"1805:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1769:6:61"},"nodeType":"YulFunctionCall","src":"1769:38:61"},"nodeType":"YulExpressionStatement","src":"1769:38:61"},{"nodeType":"YulAssignment","src":"1816:16:61","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1825:7:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1816:5:61"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1402:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"1410:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1418:5:61","type":""}],"src":"1376:462:61"},{"body":{"nodeType":"YulBlock","src":"1998:913:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2008:33:61","value":{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2022:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"2031:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2018:3:61"},"nodeType":"YulFunctionCall","src":"2018:23:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2012:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2066:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2075:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2078:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2068:6:61"},"nodeType":"YulFunctionCall","src":"2068:12:61"},"nodeType":"YulExpressionStatement","src":"2068:12:61"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2057:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2061:3:61","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2053:3:61"},"nodeType":"YulFunctionCall","src":"2053:12:61"},"nodeType":"YulIf","src":"2050:32:61"},{"nodeType":"YulAssignment","src":"2091:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2114:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2101:12:61"},"nodeType":"YulFunctionCall","src":"2101:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2091:6:61"}]},{"nodeType":"YulAssignment","src":"2133:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2166:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2177:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2162:3:61"},"nodeType":"YulFunctionCall","src":"2162:18:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2143:18:61"},"nodeType":"YulFunctionCall","src":"2143:38:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2133:6:61"}]},{"body":{"nodeType":"YulBlock","src":"2280:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2289:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2292:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2282:6:61"},"nodeType":"YulFunctionCall","src":"2282:12:61"},"nodeType":"YulExpressionStatement","src":"2282:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2201:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2205:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2197:3:61"},"nodeType":"YulFunctionCall","src":"2197:75:61"},{"kind":"number","nodeType":"YulLiteral","src":"2274:4:61","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2193:3:61"},"nodeType":"YulFunctionCall","src":"2193:86:61"},"nodeType":"YulIf","src":"2190:106:61"},{"nodeType":"YulVariableDeclaration","src":"2305:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2325:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2319:5:61"},"nodeType":"YulFunctionCall","src":"2319:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2309:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2337:35:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2359:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2367:4:61","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2355:3:61"},"nodeType":"YulFunctionCall","src":"2355:17:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2341:10:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2381:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2391:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2385:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2468:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2470:16:61"},"nodeType":"YulFunctionCall","src":"2470:18:61"},"nodeType":"YulExpressionStatement","src":"2470:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2427:10:61"},{"name":"_2","nodeType":"YulIdentifier","src":"2439:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2424:2:61"},"nodeType":"YulFunctionCall","src":"2424:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2447:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2459:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2444:2:61"},"nodeType":"YulFunctionCall","src":"2444:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2421:2:61"},"nodeType":"YulFunctionCall","src":"2421:46:61"},"nodeType":"YulIf","src":"2418:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2506:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2510:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2499:6:61"},"nodeType":"YulFunctionCall","src":"2499:22:61"},"nodeType":"YulExpressionStatement","src":"2499:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2537:6:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2562:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2573:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2558:3:61"},"nodeType":"YulFunctionCall","src":"2558:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2545:12:61"},"nodeType":"YulFunctionCall","src":"2545:32:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2530:6:61"},"nodeType":"YulFunctionCall","src":"2530:48:61"},"nodeType":"YulExpressionStatement","src":"2530:48:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2598:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2606:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2594:3:61"},"nodeType":"YulFunctionCall","src":"2594:15:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2628:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2639:4:61","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2624:3:61"},"nodeType":"YulFunctionCall","src":"2624:20:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2611:12:61"},"nodeType":"YulFunctionCall","src":"2611:34:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2587:6:61"},"nodeType":"YulFunctionCall","src":"2587:59:61"},"nodeType":"YulExpressionStatement","src":"2587:59:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2666:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2674:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2662:3:61"},"nodeType":"YulFunctionCall","src":"2662:15:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2696:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2707:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:61"},"nodeType":"YulFunctionCall","src":"2692:19:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2679:12:61"},"nodeType":"YulFunctionCall","src":"2679:33:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2655:6:61"},"nodeType":"YulFunctionCall","src":"2655:58:61"},"nodeType":"YulExpressionStatement","src":"2655:58:61"},{"nodeType":"YulAssignment","src":"2722:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2732:6:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2722:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"2747:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2778:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2789:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2774:3:61"},"nodeType":"YulFunctionCall","src":"2774:19:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2761:12:61"},"nodeType":"YulFunctionCall","src":"2761:33:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2751:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2821:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2830:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2833:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2823:6:61"},"nodeType":"YulFunctionCall","src":"2823:12:61"},"nodeType":"YulExpressionStatement","src":"2823:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2809:6:61"},{"name":"_2","nodeType":"YulIdentifier","src":"2817:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2806:2:61"},"nodeType":"YulFunctionCall","src":"2806:14:61"},"nodeType":"YulIf","src":"2803:34:61"},{"nodeType":"YulAssignment","src":"2846:59:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2877:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"2888:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2873:3:61"},"nodeType":"YulFunctionCall","src":"2873:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2897:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"2856:16:61"},"nodeType":"YulFunctionCall","src":"2856:49:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2846:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_struct$_Version_$5567_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1940:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1951:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1963:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1971:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1979:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1987:6:61","type":""}],"src":"1843:1068:61"},{"body":{"nodeType":"YulBlock","src":"3003:167:61","statements":[{"body":{"nodeType":"YulBlock","src":"3049:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3058:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3061:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3051:6:61"},"nodeType":"YulFunctionCall","src":"3051:12:61"},"nodeType":"YulExpressionStatement","src":"3051:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3024:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"3033:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3020:3:61"},"nodeType":"YulFunctionCall","src":"3020:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"3045:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3016:3:61"},"nodeType":"YulFunctionCall","src":"3016:32:61"},"nodeType":"YulIf","src":"3013:52:61"},{"nodeType":"YulAssignment","src":"3074:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3097:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3084:12:61"},"nodeType":"YulFunctionCall","src":"3084:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:61"}]},{"nodeType":"YulAssignment","src":"3116:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3149:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3160:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3145:3:61"},"nodeType":"YulFunctionCall","src":"3145:18:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3126:18:61"},"nodeType":"YulFunctionCall","src":"3126:38:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3116:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2961:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2972:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2984:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2992:6:61","type":""}],"src":"2916:254:61"},{"body":{"nodeType":"YulBlock","src":"3245:110:61","statements":[{"body":{"nodeType":"YulBlock","src":"3291:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3300:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3303:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3293:6:61"},"nodeType":"YulFunctionCall","src":"3293:12:61"},"nodeType":"YulExpressionStatement","src":"3293:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3266:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"3275:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3262:3:61"},"nodeType":"YulFunctionCall","src":"3262:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"3287:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3258:3:61"},"nodeType":"YulFunctionCall","src":"3258:32:61"},"nodeType":"YulIf","src":"3255:52:61"},{"nodeType":"YulAssignment","src":"3316:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3339:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3326:12:61"},"nodeType":"YulFunctionCall","src":"3326:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3316:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3211:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3222:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3234:6:61","type":""}],"src":"3175:180:61"},{"body":{"nodeType":"YulBlock","src":"3461:125:61","statements":[{"nodeType":"YulAssignment","src":"3471:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3483:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3494:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3479:3:61"},"nodeType":"YulFunctionCall","src":"3479:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3471:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3513:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3528:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3536:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3524:3:61"},"nodeType":"YulFunctionCall","src":"3524:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3506:6:61"},"nodeType":"YulFunctionCall","src":"3506:74:61"},"nodeType":"YulExpressionStatement","src":"3506:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3430:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3441:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3452:4:61","type":""}],"src":"3360:226:61"},{"body":{"nodeType":"YulBlock","src":"3708:125:61","statements":[{"nodeType":"YulAssignment","src":"3718:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3730:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3741:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3726:3:61"},"nodeType":"YulFunctionCall","src":"3726:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3718:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3760:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3775:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3783:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3771:3:61"},"nodeType":"YulFunctionCall","src":"3771:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3753:6:61"},"nodeType":"YulFunctionCall","src":"3753:74:61"},"nodeType":"YulExpressionStatement","src":"3753:74:61"}]},"name":"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3677:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3688:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3699:4:61","type":""}],"src":"3591:242:61"},{"body":{"nodeType":"YulBlock","src":"3942:212:61","statements":[{"body":{"nodeType":"YulBlock","src":"3988:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3997:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4000:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3990:6:61"},"nodeType":"YulFunctionCall","src":"3990:12:61"},"nodeType":"YulExpressionStatement","src":"3990:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3963:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"3972:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3959:3:61"},"nodeType":"YulFunctionCall","src":"3959:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"3984:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3955:3:61"},"nodeType":"YulFunctionCall","src":"3955:32:61"},"nodeType":"YulIf","src":"3952:52:61"},{"nodeType":"YulAssignment","src":"4013:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4036:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4023:12:61"},"nodeType":"YulFunctionCall","src":"4023:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4013:6:61"}]},{"nodeType":"YulAssignment","src":"4055:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4082:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4093:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4078:3:61"},"nodeType":"YulFunctionCall","src":"4078:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4065:12:61"},"nodeType":"YulFunctionCall","src":"4065:32:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4055:6:61"}]},{"nodeType":"YulAssignment","src":"4106:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4133:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4144:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4129:3:61"},"nodeType":"YulFunctionCall","src":"4129:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4116:12:61"},"nodeType":"YulFunctionCall","src":"4116:32:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4106:6:61"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3892:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3903:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3915:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3923:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3931:6:61","type":""}],"src":"3838:316:61"},{"body":{"nodeType":"YulBlock","src":"4239:241:61","statements":[{"body":{"nodeType":"YulBlock","src":"4285:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4294:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4297:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4287:6:61"},"nodeType":"YulFunctionCall","src":"4287:12:61"},"nodeType":"YulExpressionStatement","src":"4287:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4260:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"4269:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4256:3:61"},"nodeType":"YulFunctionCall","src":"4256:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"4281:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4252:3:61"},"nodeType":"YulFunctionCall","src":"4252:32:61"},"nodeType":"YulIf","src":"4249:52:61"},{"nodeType":"YulVariableDeclaration","src":"4310:37:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4337:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4324:12:61"},"nodeType":"YulFunctionCall","src":"4324:23:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4314:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4390:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4399:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4402:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4392:6:61"},"nodeType":"YulFunctionCall","src":"4392:12:61"},"nodeType":"YulExpressionStatement","src":"4392:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4362:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4370:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4359:2:61"},"nodeType":"YulFunctionCall","src":"4359:30:61"},"nodeType":"YulIf","src":"4356:50:61"},{"nodeType":"YulAssignment","src":"4415:59:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4446:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"4457:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4442:3:61"},"nodeType":"YulFunctionCall","src":"4442:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4466:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4425:16:61"},"nodeType":"YulFunctionCall","src":"4425:49:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4415:6:61"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4205:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4216:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4228:6:61","type":""}],"src":"4159:321:61"},{"body":{"nodeType":"YulBlock","src":"4591:434:61","statements":[{"body":{"nodeType":"YulBlock","src":"4637:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4646:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4649:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4639:6:61"},"nodeType":"YulFunctionCall","src":"4639:12:61"},"nodeType":"YulExpressionStatement","src":"4639:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4612:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4608:3:61"},"nodeType":"YulFunctionCall","src":"4608:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"4633:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4604:3:61"},"nodeType":"YulFunctionCall","src":"4604:32:61"},"nodeType":"YulIf","src":"4601:52:61"},{"nodeType":"YulVariableDeclaration","src":"4662:37:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4689:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4676:12:61"},"nodeType":"YulFunctionCall","src":"4676:23:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4666:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4708:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4718:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4712:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4763:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4772:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4775:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4765:6:61"},"nodeType":"YulFunctionCall","src":"4765:12:61"},"nodeType":"YulExpressionStatement","src":"4765:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4751:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4759:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4748:2:61"},"nodeType":"YulFunctionCall","src":"4748:14:61"},"nodeType":"YulIf","src":"4745:34:61"},{"nodeType":"YulAssignment","src":"4788:59:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4819:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"4830:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4815:3:61"},"nodeType":"YulFunctionCall","src":"4815:22:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4839:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4798:16:61"},"nodeType":"YulFunctionCall","src":"4798:49:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4788:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"4856:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:61"},"nodeType":"YulFunctionCall","src":"4885:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4872:12:61"},"nodeType":"YulFunctionCall","src":"4872:32:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4860:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4933:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4942:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4945:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4935:6:61"},"nodeType":"YulFunctionCall","src":"4935:12:61"},"nodeType":"YulExpressionStatement","src":"4935:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4919:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4929:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4916:2:61"},"nodeType":"YulFunctionCall","src":"4916:16:61"},"nodeType":"YulIf","src":"4913:36:61"},{"nodeType":"YulAssignment","src":"4958:61:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4989:9:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5000:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4985:3:61"},"nodeType":"YulFunctionCall","src":"4985:24:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5011:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4968:16:61"},"nodeType":"YulFunctionCall","src":"4968:51:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4958:6:61"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4549:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4560:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4572:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4580:6:61","type":""}],"src":"4485:540:61"},{"body":{"nodeType":"YulBlock","src":"5136:454:61","statements":[{"body":{"nodeType":"YulBlock","src":"5182:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5191:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5194:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5184:6:61"},"nodeType":"YulFunctionCall","src":"5184:12:61"},"nodeType":"YulExpressionStatement","src":"5184:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5157:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"5166:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5153:3:61"},"nodeType":"YulFunctionCall","src":"5153:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"5178:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5149:3:61"},"nodeType":"YulFunctionCall","src":"5149:32:61"},"nodeType":"YulIf","src":"5146:52:61"},{"nodeType":"YulVariableDeclaration","src":"5207:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5227:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5221:5:61"},"nodeType":"YulFunctionCall","src":"5221:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"5211:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5239:33:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5261:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5269:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5257:3:61"},"nodeType":"YulFunctionCall","src":"5257:15:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"5243:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"5347:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5349:16:61"},"nodeType":"YulFunctionCall","src":"5349:18:61"},"nodeType":"YulExpressionStatement","src":"5349:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5290:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"5302:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5287:2:61"},"nodeType":"YulFunctionCall","src":"5287:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5326:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"5338:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5323:2:61"},"nodeType":"YulFunctionCall","src":"5323:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5284:2:61"},"nodeType":"YulFunctionCall","src":"5284:62:61"},"nodeType":"YulIf","src":"5281:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5385:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5389:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5378:6:61"},"nodeType":"YulFunctionCall","src":"5378:22:61"},"nodeType":"YulExpressionStatement","src":"5378:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5416:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5430:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5424:5:61"},"nodeType":"YulFunctionCall","src":"5424:16:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5409:6:61"},"nodeType":"YulFunctionCall","src":"5409:32:61"},"nodeType":"YulExpressionStatement","src":"5409:32:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5461:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5469:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5457:3:61"},"nodeType":"YulFunctionCall","src":"5457:15:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5484:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5495:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5480:3:61"},"nodeType":"YulFunctionCall","src":"5480:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5474:5:61"},"nodeType":"YulFunctionCall","src":"5474:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5450:6:61"},"nodeType":"YulFunctionCall","src":"5450:50:61"},"nodeType":"YulExpressionStatement","src":"5450:50:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5520:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5528:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5516:3:61"},"nodeType":"YulFunctionCall","src":"5516:15:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5543:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5554:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5539:3:61"},"nodeType":"YulFunctionCall","src":"5539:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5533:5:61"},"nodeType":"YulFunctionCall","src":"5533:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5509:6:61"},"nodeType":"YulFunctionCall","src":"5509:50:61"},"nodeType":"YulExpressionStatement","src":"5509:50:61"},{"nodeType":"YulAssignment","src":"5568:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"5578:6:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5568:6:61"}]}]},"name":"abi_decode_tuple_t_struct$_Version_$5567_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5102:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5113:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5125:6:61","type":""}],"src":"5030:560:61"},{"body":{"nodeType":"YulBlock","src":"5769:229:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5786:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5797:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5779:6:61"},"nodeType":"YulFunctionCall","src":"5779:21:61"},"nodeType":"YulExpressionStatement","src":"5779:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5820:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5831:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5816:3:61"},"nodeType":"YulFunctionCall","src":"5816:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"5836:2:61","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5809:6:61"},"nodeType":"YulFunctionCall","src":"5809:30:61"},"nodeType":"YulExpressionStatement","src":"5809:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5859:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5870:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5855:3:61"},"nodeType":"YulFunctionCall","src":"5855:18:61"},{"hexValue":"4368756753706c61736852656769737472793a2076657273696f6e20616c7265","kind":"string","nodeType":"YulLiteral","src":"5875:34:61","type":"","value":"ChugSplashRegistry: version alre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5848:6:61"},"nodeType":"YulFunctionCall","src":"5848:62:61"},"nodeType":"YulExpressionStatement","src":"5848:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5930:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5941:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5926:3:61"},"nodeType":"YulFunctionCall","src":"5926:18:61"},{"hexValue":"61647920736574","kind":"string","nodeType":"YulLiteral","src":"5946:9:61","type":"","value":"ady set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5919:6:61"},"nodeType":"YulFunctionCall","src":"5919:37:61"},"nodeType":"YulExpressionStatement","src":"5919:37:61"},{"nodeType":"YulAssignment","src":"5965:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5977:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5988:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5973:3:61"},"nodeType":"YulFunctionCall","src":"5973:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5965:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_a86248a7b9786df3e2a168bab6a551b9403c1c6ff3d83fca0c4e91f03cb8fe15__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5746:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5760:4:61","type":""}],"src":"5595:403:61"},{"body":{"nodeType":"YulBlock","src":"6177:235:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6194:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6205:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6187:6:61"},"nodeType":"YulFunctionCall","src":"6187:21:61"},"nodeType":"YulExpressionStatement","src":"6187:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6228:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6239:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6224:3:61"},"nodeType":"YulFunctionCall","src":"6224:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"6244:2:61","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6217:6:61"},"nodeType":"YulFunctionCall","src":"6217:30:61"},"nodeType":"YulExpressionStatement","src":"6217:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6267:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6278:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6263:3:61"},"nodeType":"YulFunctionCall","src":"6263:18:61"},{"hexValue":"4368756753706c61736852656769737472793a206f726720494420616c726561","kind":"string","nodeType":"YulLiteral","src":"6283:34:61","type":"","value":"ChugSplashRegistry: org ID alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6256:6:61"},"nodeType":"YulFunctionCall","src":"6256:62:61"},"nodeType":"YulExpressionStatement","src":"6256:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6338:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6349:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6334:3:61"},"nodeType":"YulFunctionCall","src":"6334:18:61"},{"hexValue":"64792072656769737465726564","kind":"string","nodeType":"YulLiteral","src":"6354:15:61","type":"","value":"dy registered"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6327:6:61"},"nodeType":"YulFunctionCall","src":"6327:43:61"},"nodeType":"YulExpressionStatement","src":"6327:43:61"},{"nodeType":"YulAssignment","src":"6379:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6391:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6402:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6387:3:61"},"nodeType":"YulFunctionCall","src":"6387:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6379:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_4831d89bdcb36267605b80783dff59fda98f7cf13e280af80e15c810474e8dc3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6154:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6168:4:61","type":""}],"src":"6003:409:61"},{"body":{"nodeType":"YulBlock","src":"6591:233:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6608:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6619:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6601:6:61"},"nodeType":"YulFunctionCall","src":"6601:21:61"},"nodeType":"YulExpressionStatement","src":"6601:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6642:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6653:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6638:3:61"},"nodeType":"YulFunctionCall","src":"6638:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"6658:2:61","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6631:6:61"},"nodeType":"YulFunctionCall","src":"6631:30:61"},"nodeType":"YulExpressionStatement","src":"6631:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6681:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6692:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6677:3:61"},"nodeType":"YulFunctionCall","src":"6677:18:61"},{"hexValue":"4368756753706c61736852656769737472793a20696e76616c6964206d616e61","kind":"string","nodeType":"YulLiteral","src":"6697:34:61","type":"","value":"ChugSplashRegistry: invalid mana"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6670:6:61"},"nodeType":"YulFunctionCall","src":"6670:62:61"},"nodeType":"YulExpressionStatement","src":"6670:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6752:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6763:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6748:3:61"},"nodeType":"YulFunctionCall","src":"6748:18:61"},{"hexValue":"6765722076657273696f6e","kind":"string","nodeType":"YulLiteral","src":"6768:13:61","type":"","value":"ger version"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6741:6:61"},"nodeType":"YulFunctionCall","src":"6741:41:61"},"nodeType":"YulExpressionStatement","src":"6741:41:61"},{"nodeType":"YulAssignment","src":"6791:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6803:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6814:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6799:3:61"},"nodeType":"YulFunctionCall","src":"6799:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6791:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_5cf61b6db62b7b4a11cfa3710fb6ace078799e9fd5c01f362c0b2c93119ee684__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6568:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6582:4:61","type":""}],"src":"6417:407:61"},{"body":{"nodeType":"YulBlock","src":"6985:198:61","statements":[{"nodeType":"YulAssignment","src":"6995:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7007:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7018:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7003:3:61"},"nodeType":"YulFunctionCall","src":"7003:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6995:4:61"}]},{"nodeType":"YulVariableDeclaration","src":"7030:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"7040:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7034:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7098:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7113:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"7121:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7109:3:61"},"nodeType":"YulFunctionCall","src":"7109:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7091:6:61"},"nodeType":"YulFunctionCall","src":"7091:34:61"},"nodeType":"YulExpressionStatement","src":"7091:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7145:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7156:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7141:3:61"},"nodeType":"YulFunctionCall","src":"7141:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7165:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"7173:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7161:3:61"},"nodeType":"YulFunctionCall","src":"7161:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7134:6:61"},"nodeType":"YulFunctionCall","src":"7134:43:61"},"nodeType":"YulExpressionStatement","src":"7134:43:61"}]},"name":"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6946:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6957:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6965:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6976:4:61","type":""}],"src":"6829:354:61"},{"body":{"nodeType":"YulBlock","src":"7362:240:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7379:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7390:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7372:6:61"},"nodeType":"YulFunctionCall","src":"7372:21:61"},"nodeType":"YulExpressionStatement","src":"7372:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7413:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7424:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7409:3:61"},"nodeType":"YulFunctionCall","src":"7409:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"7429:2:61","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7402:6:61"},"nodeType":"YulFunctionCall","src":"7402:30:61"},"nodeType":"YulExpressionStatement","src":"7402:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7452:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7463:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7448:3:61"},"nodeType":"YulFunctionCall","src":"7448:18:61"},{"hexValue":"4368756753706c61736852656769737472793a206661696c656420746f206465","kind":"string","nodeType":"YulLiteral","src":"7468:34:61","type":"","value":"ChugSplashRegistry: failed to de"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7441:6:61"},"nodeType":"YulFunctionCall","src":"7441:62:61"},"nodeType":"YulExpressionStatement","src":"7441:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7523:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7534:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7519:3:61"},"nodeType":"YulFunctionCall","src":"7519:18:61"},{"hexValue":"706c6f79206d616e616765722070726f7879","kind":"string","nodeType":"YulLiteral","src":"7539:20:61","type":"","value":"ploy manager proxy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7512:6:61"},"nodeType":"YulFunctionCall","src":"7512:48:61"},"nodeType":"YulExpressionStatement","src":"7512:48:61"},{"nodeType":"YulAssignment","src":"7569:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7581:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7592:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7577:3:61"},"nodeType":"YulFunctionCall","src":"7577:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7569:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3eec6b4be813f9d76b8a1a0a8912fa8732767c03a9e25bd803c1e373a26a5ca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7339:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7353:4:61","type":""}],"src":"7188:414:61"},{"body":{"nodeType":"YulBlock","src":"7660:205:61","statements":[{"nodeType":"YulVariableDeclaration","src":"7670:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"7679:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7674:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"7739:63:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7764:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"7769:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7760:3:61"},"nodeType":"YulFunctionCall","src":"7760:11:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7783:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"7788:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7779:3:61"},"nodeType":"YulFunctionCall","src":"7779:11:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7773:5:61"},"nodeType":"YulFunctionCall","src":"7773:18:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7753:6:61"},"nodeType":"YulFunctionCall","src":"7753:39:61"},"nodeType":"YulExpressionStatement","src":"7753:39:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7700:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"7703:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7697:2:61"},"nodeType":"YulFunctionCall","src":"7697:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7711:19:61","statements":[{"nodeType":"YulAssignment","src":"7713:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7722:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"7725:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7718:3:61"},"nodeType":"YulFunctionCall","src":"7718:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7713:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"7693:3:61","statements":[]},"src":"7689:113:61"},{"body":{"nodeType":"YulBlock","src":"7828:31:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7841:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"7846:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7837:3:61"},"nodeType":"YulFunctionCall","src":"7837:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"7855:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7830:6:61"},"nodeType":"YulFunctionCall","src":"7830:27:61"},"nodeType":"YulExpressionStatement","src":"7830:27:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7817:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"7820:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7814:2:61"},"nodeType":"YulFunctionCall","src":"7814:13:61"},"nodeType":"YulIf","src":"7811:48:61"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"7638:3:61","type":""},{"name":"dst","nodeType":"YulTypedName","src":"7643:3:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"7648:6:61","type":""}],"src":"7607:258:61"},{"body":{"nodeType":"YulBlock","src":"7919:267:61","statements":[{"nodeType":"YulVariableDeclaration","src":"7929:26:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7949:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7943:5:61"},"nodeType":"YulFunctionCall","src":"7943:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7933:6:61","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7971:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"7976:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7964:6:61"},"nodeType":"YulFunctionCall","src":"7964:19:61"},"nodeType":"YulExpressionStatement","src":"7964:19:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8018:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"8025:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8014:3:61"},"nodeType":"YulFunctionCall","src":"8014:16:61"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8036:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"8041:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8032:3:61"},"nodeType":"YulFunctionCall","src":"8032:14:61"},{"name":"length","nodeType":"YulIdentifier","src":"8048:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7992:21:61"},"nodeType":"YulFunctionCall","src":"7992:63:61"},"nodeType":"YulExpressionStatement","src":"7992:63:61"},{"nodeType":"YulAssignment","src":"8064:116:61","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8079:3:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8092:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"8100:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8088:3:61"},"nodeType":"YulFunctionCall","src":"8088:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"8105:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8084:3:61"},"nodeType":"YulFunctionCall","src":"8084:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8075:3:61"},"nodeType":"YulFunctionCall","src":"8075:98:61"},{"kind":"number","nodeType":"YulLiteral","src":"8175:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8071:3:61"},"nodeType":"YulFunctionCall","src":"8071:109:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8064:3:61"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7896:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7903:3:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7911:3:61","type":""}],"src":"7870:316:61"},{"body":{"nodeType":"YulBlock","src":"8310:98:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8327:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8338:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8320:6:61"},"nodeType":"YulFunctionCall","src":"8320:21:61"},"nodeType":"YulExpressionStatement","src":"8320:21:61"},{"nodeType":"YulAssignment","src":"8350:52:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8375:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8387:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8398:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8383:3:61"},"nodeType":"YulFunctionCall","src":"8383:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8358:16:61"},"nodeType":"YulFunctionCall","src":"8358:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8350:4:61"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8279:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8290:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8301:4:61","type":""}],"src":"8191:217:61"},{"body":{"nodeType":"YulBlock","src":"8560:190:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8577:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8592:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"8600:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8588:3:61"},"nodeType":"YulFunctionCall","src":"8588:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8570:6:61"},"nodeType":"YulFunctionCall","src":"8570:74:61"},"nodeType":"YulExpressionStatement","src":"8570:74:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8664:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8675:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8660:3:61"},"nodeType":"YulFunctionCall","src":"8660:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"8680:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8653:6:61"},"nodeType":"YulFunctionCall","src":"8653:30:61"},"nodeType":"YulExpressionStatement","src":"8653:30:61"},{"nodeType":"YulAssignment","src":"8692:52:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8717:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8729:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8740:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8725:3:61"},"nodeType":"YulFunctionCall","src":"8725:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8700:16:61"},"nodeType":"YulFunctionCall","src":"8700:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8692:4:61"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8521:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8532:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8540:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8551:4:61","type":""}],"src":"8413:337:61"},{"body":{"nodeType":"YulBlock","src":"8845:544:61","statements":[{"body":{"nodeType":"YulBlock","src":"8891:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8900:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8903:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8893:6:61"},"nodeType":"YulFunctionCall","src":"8893:12:61"},"nodeType":"YulExpressionStatement","src":"8893:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8866:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"8875:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8862:3:61"},"nodeType":"YulFunctionCall","src":"8862:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"8887:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8858:3:61"},"nodeType":"YulFunctionCall","src":"8858:32:61"},"nodeType":"YulIf","src":"8855:52:61"},{"nodeType":"YulVariableDeclaration","src":"8916:30:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8936:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8930:5:61"},"nodeType":"YulFunctionCall","src":"8930:16:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8920:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"8989:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8998:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9001:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8991:6:61"},"nodeType":"YulFunctionCall","src":"8991:12:61"},"nodeType":"YulExpressionStatement","src":"8991:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8961:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"8969:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8958:2:61"},"nodeType":"YulFunctionCall","src":"8958:30:61"},"nodeType":"YulIf","src":"8955:50:61"},{"nodeType":"YulVariableDeclaration","src":"9014:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9028:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"9039:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9024:3:61"},"nodeType":"YulFunctionCall","src":"9024:22:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9018:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"9094:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9103:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9106:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9096:6:61"},"nodeType":"YulFunctionCall","src":"9096:12:61"},"nodeType":"YulExpressionStatement","src":"9096:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9073:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"9077:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9069:3:61"},"nodeType":"YulFunctionCall","src":"9069:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9084:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9065:3:61"},"nodeType":"YulFunctionCall","src":"9065:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9058:6:61"},"nodeType":"YulFunctionCall","src":"9058:35:61"},"nodeType":"YulIf","src":"9055:55:61"},{"nodeType":"YulVariableDeclaration","src":"9119:19:61","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9135:2:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9129:5:61"},"nodeType":"YulFunctionCall","src":"9129:9:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9123:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9147:61:61","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9204:2:61"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"9176:27:61"},"nodeType":"YulFunctionCall","src":"9176:31:61"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9160:15:61"},"nodeType":"YulFunctionCall","src":"9160:48:61"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"9151:5:61","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"9224:5:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9231:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9217:6:61"},"nodeType":"YulFunctionCall","src":"9217:17:61"},"nodeType":"YulExpressionStatement","src":"9217:17:61"},{"body":{"nodeType":"YulBlock","src":"9280:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9289:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9292:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9282:6:61"},"nodeType":"YulFunctionCall","src":"9282:12:61"},"nodeType":"YulExpressionStatement","src":"9282:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9257:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9261:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9253:3:61"},"nodeType":"YulFunctionCall","src":"9253:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"9266:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9249:3:61"},"nodeType":"YulFunctionCall","src":"9249:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9271:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9246:2:61"},"nodeType":"YulFunctionCall","src":"9246:33:61"},"nodeType":"YulIf","src":"9243:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9331:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"9335:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9327:3:61"},"nodeType":"YulFunctionCall","src":"9327:11:61"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"9344:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"9351:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9340:3:61"},"nodeType":"YulFunctionCall","src":"9340:14:61"},{"name":"_2","nodeType":"YulIdentifier","src":"9356:2:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9305:21:61"},"nodeType":"YulFunctionCall","src":"9305:54:61"},"nodeType":"YulExpressionStatement","src":"9305:54:61"},{"nodeType":"YulAssignment","src":"9368:15:61","value":{"name":"array","nodeType":"YulIdentifier","src":"9378:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9368:6:61"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8811:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8822:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8834:6:61","type":""}],"src":"8755:634:61"},{"body":{"nodeType":"YulBlock","src":"9569:263:61","statements":[{"nodeType":"YulVariableDeclaration","src":"9579:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"9589:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9583:2:61","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9647:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9662:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"9670:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9658:3:61"},"nodeType":"YulFunctionCall","src":"9658:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9640:6:61"},"nodeType":"YulFunctionCall","src":"9640:34:61"},"nodeType":"YulExpressionStatement","src":"9640:34:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9694:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9705:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9690:3:61"},"nodeType":"YulFunctionCall","src":"9690:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9714:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"9722:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9710:3:61"},"nodeType":"YulFunctionCall","src":"9710:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9683:6:61"},"nodeType":"YulFunctionCall","src":"9683:43:61"},"nodeType":"YulExpressionStatement","src":"9683:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9746:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9757:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9742:3:61"},"nodeType":"YulFunctionCall","src":"9742:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"9762:2:61","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9735:6:61"},"nodeType":"YulFunctionCall","src":"9735:30:61"},"nodeType":"YulExpressionStatement","src":"9735:30:61"},{"nodeType":"YulAssignment","src":"9774:52:61","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9799:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9811:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"9822:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9807:3:61"},"nodeType":"YulFunctionCall","src":"9807:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9782:16:61"},"nodeType":"YulFunctionCall","src":"9782:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9774:4:61"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr__to_t_address_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9522:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9533:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9541:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9549:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9560:4:61","type":""}],"src":"9394:438:61"},{"body":{"nodeType":"YulBlock","src":"10011:247:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10028:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10039:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10021:6:61"},"nodeType":"YulFunctionCall","src":"10021:21:61"},"nodeType":"YulExpressionStatement","src":"10021:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10062:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10073:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10058:3:61"},"nodeType":"YulFunctionCall","src":"10058:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"10078:2:61","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10051:6:61"},"nodeType":"YulFunctionCall","src":"10051:30:61"},"nodeType":"YulExpressionStatement","src":"10051:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10101:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10112:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10097:3:61"},"nodeType":"YulFunctionCall","src":"10097:18:61"},{"hexValue":"4368756753706c61736852656769737472793a20636f6e7472616374206b696e","kind":"string","nodeType":"YulLiteral","src":"10117:34:61","type":"","value":"ChugSplashRegistry: contract kin"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10090:6:61"},"nodeType":"YulFunctionCall","src":"10090:62:61"},"nodeType":"YulExpressionStatement","src":"10090:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10172:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10183:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10168:3:61"},"nodeType":"YulFunctionCall","src":"10168:18:61"},{"hexValue":"642068617320616e206578697374696e672061646170746572","kind":"string","nodeType":"YulLiteral","src":"10188:27:61","type":"","value":"d has an existing adapter"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10161:6:61"},"nodeType":"YulFunctionCall","src":"10161:55:61"},"nodeType":"YulExpressionStatement","src":"10161:55:61"},{"nodeType":"YulAssignment","src":"10225:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10237:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10248:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10233:3:61"},"nodeType":"YulFunctionCall","src":"10233:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10225:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_dba88b58b3a7016c57fa76f4ffccc408c75e04183c0935ce3ef2b4402652ef6d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9988:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10002:4:61","type":""}],"src":"9837:421:61"},{"body":{"nodeType":"YulBlock","src":"10392:168:61","statements":[{"nodeType":"YulAssignment","src":"10402:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10414:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10425:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10410:3:61"},"nodeType":"YulFunctionCall","src":"10410:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10402:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10444:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"10455:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10437:6:61"},"nodeType":"YulFunctionCall","src":"10437:25:61"},"nodeType":"YulExpressionStatement","src":"10437:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10482:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10493:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10478:3:61"},"nodeType":"YulFunctionCall","src":"10478:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10502:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"10510:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10498:3:61"},"nodeType":"YulFunctionCall","src":"10498:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10471:6:61"},"nodeType":"YulFunctionCall","src":"10471:83:61"},"nodeType":"YulExpressionStatement","src":"10471:83:61"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10353:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10364:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10372:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10383:4:61","type":""}],"src":"10263:297:61"},{"body":{"nodeType":"YulBlock","src":"10739:250:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10756:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10767:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10749:6:61"},"nodeType":"YulFunctionCall","src":"10749:21:61"},"nodeType":"YulExpressionStatement","src":"10749:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10790:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10801:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10786:3:61"},"nodeType":"YulFunctionCall","src":"10786:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"10806:2:61","type":"","value":"60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10779:6:61"},"nodeType":"YulFunctionCall","src":"10779:30:61"},"nodeType":"YulExpressionStatement","src":"10779:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10829:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10840:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10825:3:61"},"nodeType":"YulFunctionCall","src":"10825:18:61"},{"hexValue":"4368756753706c61736852656769737472793a206576656e74732063616e206f","kind":"string","nodeType":"YulLiteral","src":"10845:34:61","type":"","value":"ChugSplashRegistry: events can o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10818:6:61"},"nodeType":"YulFunctionCall","src":"10818:62:61"},"nodeType":"YulExpressionStatement","src":"10818:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10900:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10911:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10896:3:61"},"nodeType":"YulFunctionCall","src":"10896:18:61"},{"hexValue":"6e6c7920626520616e6e6f756e636564206279206d616e6167657273","kind":"string","nodeType":"YulLiteral","src":"10916:30:61","type":"","value":"nly be announced by managers"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10889:6:61"},"nodeType":"YulFunctionCall","src":"10889:58:61"},"nodeType":"YulExpressionStatement","src":"10889:58:61"},{"nodeType":"YulAssignment","src":"10956:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10968:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"10979:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10964:3:61"},"nodeType":"YulFunctionCall","src":"10964:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10956:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_706209a87814ddbae2965277b436e11663351c371f6f39a43909ee8f1fb6c13e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10716:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10730:4:61","type":""}],"src":"10565:424:61"},{"body":{"nodeType":"YulBlock","src":"11133:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"11143:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11163:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11157:5:61"},"nodeType":"YulFunctionCall","src":"11157:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11147:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11205:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"11213:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11201:3:61"},"nodeType":"YulFunctionCall","src":"11201:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"11220:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"11225:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11179:21:61"},"nodeType":"YulFunctionCall","src":"11179:53:61"},"nodeType":"YulExpressionStatement","src":"11179:53:61"},{"nodeType":"YulAssignment","src":"11241:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11252:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"11257:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11248:3:61"},"nodeType":"YulFunctionCall","src":"11248:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11241:3:61"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11109:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11114:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11125:3:61","type":""}],"src":"10994:276:61"},{"body":{"nodeType":"YulBlock","src":"11396:98:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11413:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11424:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11406:6:61"},"nodeType":"YulFunctionCall","src":"11406:21:61"},"nodeType":"YulExpressionStatement","src":"11406:21:61"},{"nodeType":"YulAssignment","src":"11436:52:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11461:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11473:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11484:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11469:3:61"},"nodeType":"YulFunctionCall","src":"11469:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11444:16:61"},"nodeType":"YulFunctionCall","src":"11444:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11436:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11365:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11376:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11387:4:61","type":""}],"src":"11275:219:61"},{"body":{"nodeType":"YulBlock","src":"11673:228:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11690:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11701:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11683:6:61"},"nodeType":"YulFunctionCall","src":"11683:21:61"},"nodeType":"YulExpressionStatement","src":"11683:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11724:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11735:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11720:3:61"},"nodeType":"YulFunctionCall","src":"11720:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"11740:2:61","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11713:6:61"},"nodeType":"YulFunctionCall","src":"11713:30:61"},"nodeType":"YulExpressionStatement","src":"11713:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11763:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11774:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11759:3:61"},"nodeType":"YulFunctionCall","src":"11759:18:61"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"11779:34:61","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11752:6:61"},"nodeType":"YulFunctionCall","src":"11752:62:61"},"nodeType":"YulExpressionStatement","src":"11752:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11834:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11845:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11830:3:61"},"nodeType":"YulFunctionCall","src":"11830:18:61"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"11850:8:61","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11823:6:61"},"nodeType":"YulFunctionCall","src":"11823:36:61"},"nodeType":"YulExpressionStatement","src":"11823:36:61"},{"nodeType":"YulAssignment","src":"11868:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11880:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"11891:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11876:3:61"},"nodeType":"YulFunctionCall","src":"11876:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11868:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11650:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11664:4:61","type":""}],"src":"11499:402:61"},{"body":{"nodeType":"YulBlock","src":"12043:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"12053:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12073:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12067:5:61"},"nodeType":"YulFunctionCall","src":"12067:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12057:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12115:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"12123:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12111:3:61"},"nodeType":"YulFunctionCall","src":"12111:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"12130:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"12135:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12089:21:61"},"nodeType":"YulFunctionCall","src":"12089:53:61"},"nodeType":"YulExpressionStatement","src":"12089:53:61"},{"nodeType":"YulAssignment","src":"12151:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12162:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"12167:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12158:3:61"},"nodeType":"YulFunctionCall","src":"12158:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12151:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12019:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12024:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12035:3:61","type":""}],"src":"11906:274:61"},{"body":{"nodeType":"YulBlock","src":"12352:212:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12369:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12380:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12362:6:61"},"nodeType":"YulFunctionCall","src":"12362:21:61"},"nodeType":"YulExpressionStatement","src":"12362:21:61"},{"nodeType":"YulVariableDeclaration","src":"12392:58:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12423:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12435:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12446:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12431:3:61"},"nodeType":"YulFunctionCall","src":"12431:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12406:16:61"},"nodeType":"YulFunctionCall","src":"12406:44:61"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12396:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12470:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12481:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12466:3:61"},"nodeType":"YulFunctionCall","src":"12466:18:61"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"12490:6:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"12498:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12486:3:61"},"nodeType":"YulFunctionCall","src":"12486:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12459:6:61"},"nodeType":"YulFunctionCall","src":"12459:50:61"},"nodeType":"YulExpressionStatement","src":"12459:50:61"},{"nodeType":"YulAssignment","src":"12518:40:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12543:6:61"},{"name":"tail_1","nodeType":"YulIdentifier","src":"12551:6:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12526:16:61"},"nodeType":"YulFunctionCall","src":"12526:32:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12518:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12313:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12324:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12332:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12343:4:61","type":""}],"src":"12185:379:61"},{"body":{"nodeType":"YulBlock","src":"12743:182:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12760:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12771:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12753:6:61"},"nodeType":"YulFunctionCall","src":"12753:21:61"},"nodeType":"YulExpressionStatement","src":"12753:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12794:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12805:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12790:3:61"},"nodeType":"YulFunctionCall","src":"12790:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"12810:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12783:6:61"},"nodeType":"YulFunctionCall","src":"12783:30:61"},"nodeType":"YulExpressionStatement","src":"12783:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12833:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12844:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12829:3:61"},"nodeType":"YulFunctionCall","src":"12829:18:61"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"12849:34:61","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12822:6:61"},"nodeType":"YulFunctionCall","src":"12822:62:61"},"nodeType":"YulExpressionStatement","src":"12822:62:61"},{"nodeType":"YulAssignment","src":"12893:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12905:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"12916:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12901:3:61"},"nodeType":"YulFunctionCall","src":"12901:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12893:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12720:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12734:4:61","type":""}],"src":"12569:356:61"}]},"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_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 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_bytes(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_bytes(_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 abi_decode_tuple_t_bytes32t_addresst_struct$_Version_$5567_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 192) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        if slt(add(_1, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0), 0x60) { revert(0, 0) }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        let _2 := 0xffffffffffffffff\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, calldataload(add(headStart, 64)))\n        mstore(add(memPtr, 32), calldataload(add(headStart, 0x60)))\n        mstore(add(memPtr, 64), calldataload(add(headStart, 128)))\n        value2 := memPtr\n        let offset := calldataload(add(headStart, 160))\n        if gt(offset, _2) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\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_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_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_address_payable__to_t_address_payable__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_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\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_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\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        value0 := abi_decode_bytes(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_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_struct$_Version_$5567_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 96)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, mload(headStart))\n        mstore(add(memPtr, 32), mload(add(headStart, 32)))\n        mstore(add(memPtr, 64), mload(add(headStart, 64)))\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_stringliteral_a86248a7b9786df3e2a168bab6a551b9403c1c6ff3d83fca0c4e91f03cb8fe15__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), \"ChugSplashRegistry: version alre\")\n        mstore(add(headStart, 96), \"ady set\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4831d89bdcb36267605b80783dff59fda98f7cf13e280af80e15c810474e8dc3__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), \"ChugSplashRegistry: org ID alrea\")\n        mstore(add(headStart, 96), \"dy registered\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5cf61b6db62b7b4a11cfa3710fb6ace078799e9fd5c01f362c0b2c93119ee684__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), \"ChugSplashRegistry: invalid mana\")\n        mstore(add(headStart, 96), \"ger version\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652_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_a3eec6b4be813f9d76b8a1a0a8912fa8732767c03a9e25bd803c1e373a26a5ca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ChugSplashRegistry: failed to de\")\n        mstore(add(headStart, 96), \"ploy manager proxy\")\n        tail := add(headStart, 128)\n    }\n    function copy_memory_to_memory(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        if gt(i, length) { 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(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_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        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\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        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := mload(_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        copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n        value0 := array\n    }\n    function abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr__to_t_address_t_address_t_bytes_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_bytes(value2, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_dba88b58b3a7016c57fa76f4ffccc408c75e04183c0935ce3ef2b4402652ef6d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"ChugSplashRegistry: contract kin\")\n        mstore(add(headStart, 96), \"d has an existing adapter\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_706209a87814ddbae2965277b436e11663351c371f6f39a43909ee8f1fb6c13e__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), \"ChugSplashRegistry: events can o\")\n        mstore(add(headStart, 96), \"nly be announced by managers\")\n        tail := add(headStart, 128)\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(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        tail := abi_encode_bytes(value0, add(headStart, 32))\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_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(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_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        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value1, tail_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}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063e91204de11610066578063e91204de14610231578063ea0a523714610278578063f2fde38b1461028b578063f52cc7fd1461029e57600080fd5b80638da5cb5b146101ba578063b696e7fa146101d8578063b96ea12d146101fb57600080fd5b80634b67f1a8116100bd5780634b67f1a814610144578063715018a61461015757806372c6838f1461015f57600080fd5b806311cdf27a146100e4578063204bbec7146100f957806331662fd614610131575b600080fd5b6100f76100f2366004610dfe565b6102b1565b005b61011c610107366004610dfe565b60046020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100f761013f366004610efe565b6104b9565b6100f7610152366004610fcc565b61094a565b6100f7610a75565b61019561016d366004610ff8565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610128565b60005473ffffffffffffffffffffffffffffffffffffffff16610195565b61011c6101e6366004610dfe565b60026020526000908152604090205460ff1681565b610195610209366004610ff8565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61019561023f366004611011565b600560209081526000938452604080852082529284528284209052825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6100f761028636600461103d565b610a89565b6100f7610299366004610dfe565b610b60565b6100f76102ac36600461107a565b610bfd565b6102b9610cec565b60008173ffffffffffffffffffffffffffffffffffffffff166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a91906110de565b80516020808301516040808501516000858152600585528281208482528552828120828252909452922054939450919273ffffffffffffffffffffffffffffffffffffffff16156103e85760405162461bcd60e51b815260206004820152602760248201527f4368756753706c61736852656769737472793a2076657273696f6e20616c726560448201527f616479207365740000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905586835260058252808320868452825280832085845282529182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905590519182528291849186917fad4f648400b850e9d053dbbd943dc1f16f1dd948913439a82886d60b875fa961910160405180910390a45050505050565b60008481526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16156105515760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c61736852656769737472793a206f726720494420616c72656160448201527f647920726567697374657265640000000000000000000000000000000000000060648201526084016103df565b81516000908152600560209081526040808320828601518452825280832081860151845282528083205473ffffffffffffffffffffffffffffffffffffffff1680845260049092529091205460ff166106125760405162461bcd60e51b815260206004820152602b60248201527f4368756753706c61736852656769737472793a20696e76616c6964206d616e6160448201527f6765722076657273696f6e00000000000000000000000000000000000000000060648201526084016103df565b600085303060405161062390610dc8565b73ffffffffffffffffffffffffffffffffffffffff9283168152911660208201526040018190604051809103906000f5905080158015610667573d6000803e3d6000fd5b50905073ffffffffffffffffffffffffffffffffffffffff81166106f35760405162461bcd60e51b815260206004820152603260248201527f4368756753706c61736852656769737472793a206661696c656420746f20646560448201527f706c6f79206d616e616765722070726f7879000000000000000000000000000060648201526084016103df565b600086815260016020818152604080842080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155808552600290925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051634f1ef286908590610792908890602401611196565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f439fab9100000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526108229291906004016111a9565b6000604051808303816000875af1158015610841573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261086991908101906111d8565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015291925090831690638f28397090602401600060405180830381600087803b1580156108d657600080fd5b505af11580156108ea573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16877f34f01ac8697184bb2b594a525aaf915e28334b8ee9ce73d80e3d0d08fadcd3418833856040516109399392919061124f565b60405180910390a350505050505050565b610952610cec565b60008281526003602052604090205473ffffffffffffffffffffffffffffffffffffffff16156109ea5760405162461bcd60e51b815260206004820152603960248201527f4368756753706c61736852656769737472793a20636f6e7472616374206b696e60448201527f642068617320616e206578697374696e6720616461707465720000000000000060648201526084016103df565b60008281526003602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fb2ae55a73412ceef617c2ecead73f8d660a4904740fa33d050ae5d8b517d7b47910160405180910390a15050565b610a7d610cec565b610a876000610d53565b565b3360009081526002602052604090205460ff16610b0e5760405162461bcd60e51b815260206004820152603c60248201527f4368756753706c61736852656769737472793a206576656e74732063616e206f60448201527f6e6c7920626520616e6e6f756e636564206279206d616e61676572730000000060648201526084016103df565b6040513390610b1e908390611288565b60405180910390207f795f66a5da2addfeb09f1b32396ff2be31a38ebe0f85fae32133a226dbe065b383604051610b559190611196565b60405180910390a350565b610b68610cec565b73ffffffffffffffffffffffffffffffffffffffff8116610bf15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103df565b610bfa81610d53565b50565b3360009081526002602052604090205460ff16610c825760405162461bcd60e51b815260206004820152603c60248201527f4368756753706c61736852656769737472793a206576656e74732063616e206f60448201527f6e6c7920626520616e6e6f756e636564206279206d616e61676572730000000060648201526084016103df565b80604051610c909190611288565b604051908190038120903390610ca7908590611288565b60405180910390207f524ccd226c22cefbc337f02a4ec771a77e2df0925309645b4e79d650f11e2aa08585604051610ce09291906112a4565b60405180910390a45050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103df565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dbc806112ca83390190565b803573ffffffffffffffffffffffffffffffffffffffff81168114610df957600080fd5b919050565b600060208284031215610e1057600080fd5b610e1982610dd5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e7857610e78610e20565b604052919050565b600067ffffffffffffffff821115610e9a57610e9a610e20565b50601f01601f191660200190565b600082601f830112610eb957600080fd5b8135610ecc610ec782610e80565b610e4f565b818152846020838601011115610ee157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008084860360c0811215610f1557600080fd5b85359450610f2560208701610dd5565b935060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215610f5757600080fd5b506040516060810167ffffffffffffffff8282108183111715610f7c57610f7c610e20565b8160405260408801358352606088013560208401526080880135604084015282945060a0880135925080831115610fb257600080fd5b5050610fc087828801610ea8565b91505092959194509250565b60008060408385031215610fdf57600080fd5b82359150610fef60208401610dd5565b90509250929050565b60006020828403121561100a57600080fd5b5035919050565b60008060006060848603121561102657600080fd5b505081359360208301359350604090920135919050565b60006020828403121561104f57600080fd5b813567ffffffffffffffff81111561106657600080fd5b61107284828501610ea8565b949350505050565b6000806040838503121561108d57600080fd5b823567ffffffffffffffff808211156110a557600080fd5b6110b186838701610ea8565b935060208501359150808211156110c757600080fd5b506110d485828601610ea8565b9150509250929050565b6000606082840312156110f057600080fd5b6040516060810181811067ffffffffffffffff8211171561111357611113610e20565b80604052508251815260208301516020820152604083015160408201528091505092915050565b60005b8381101561115557818101518382015260200161113d565b83811115611164576000848401525b50505050565b6000815180845261118281602086016020860161113a565b601f01601f19169290920160200192915050565b602081526000610e19602083018461116a565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000611072604083018461116a565b6000602082840312156111ea57600080fd5b815167ffffffffffffffff81111561120157600080fd5b8201601f8101841361121257600080fd5b8051611220610ec782610e80565b81815285602083850101111561123557600080fd5b61124682602083016020860161113a565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611246606083018461116a565b6000825161129a81846020870161113a565b9190910192915050565b6040815260006112b7604083018561116a565b8281036020840152611246818561116a56fe60a0604052604051610dbc380380610dbc833981016040819052610022916100cb565b8061002c8161003f565b50506001600160a01b0316608052610105565b6000610057600080516020610d9c8339815191525490565b600080516020610d9c833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6001600160a01b03811681146100c857600080fd5b50565b600080604083850312156100de57600080fd5b82516100e9816100b3565b60208401519092506100fa816100b3565b809150509250929050565b608051610c6e61012e60003960008181610108015281816103c001526106510152610c6e6000f3fe6080604052600436106100695760003560e01c80637b103999116100435780637b103999146100f65780638f2839701461012a578063f851a4401461014a57610078565b80633659cfe6146100805780634f1ef286146100a05780635c60da1b146100c957610078565b366100785761007661015f565b005b61007661015f565b34801561008c57600080fd5b5061007661009b366004610b1e565b61022f565b6100b36100ae366004610b39565b6104b8565b6040516100c09190610bbc565b60405180910390f35b3480156100d557600080fd5b506100de610753565b6040516001600160a01b0390911681526020016100c0565b34801561010257600080fd5b506100de7f000000000000000000000000000000000000000000000000000000000000000081565b34801561013657600080fd5b50610076610145366004610b1e565b6107d0565b34801561015657600080fd5b506100de61081d565b60006101897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811661020c5760405162461bcd60e51b815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e80610229573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061026e575033155b156104ad57600061029d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806103145750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103129190610c2f565b155b6103865760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015283917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d9190610c2f565b61049f5760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b6104a88361088f565b505050565b6104b561015f565b50565b60606104e27fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b031614806104ff575033155b1561074457600061052e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b03811615806105a55750806001600160a01b031663e8ea2d086040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610c2f565b155b6106175760405162461bcd60e51b815260206004820152602d60248201527f4368756753706c6173684d616e6167657250726f78793a20657865637574696f60448201527f6e20696e2070726f6772657373000000000000000000000000000000000000006064820152608401610203565b6040517f204bbec70000000000000000000000000000000000000000000000000000000081526001600160a01b03808716600483015286917f00000000000000000000000000000000000000000000000000000000000000009091169063204bbec790602401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190610c2f565b6107305760405162461bcd60e51b815260206004820152602a60248201527f4368756753706c6173684d616e6167657250726f78793a20756e617070726f7660448201527f6564206d616e61676572000000000000000000000000000000000000000000006064820152608401610203565b61073b8686866108dc565b9250505061074c565b61074c61015f565b9392505050565b600061077d7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b0316148061079a575033155b156107c557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6107cd61015f565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b0316148061080f575033155b156104ad576104b581610a0f565b60006108477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610864575033155b156107c557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316336001600160a01b031614806108ce575033155b156104ad576104b581610aa7565b60606109067fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b0316336001600160a01b03161480610923575033155b156107445761093184610aa7565b600080856001600160a01b0316858560405161094e929190610c51565b600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b509150915081610a065760405162461bcd60e51b815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c6564000000000000006064820152608401610203565b915061074c9050565b6000610a397fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b80356001600160a01b0381168114610b1957600080fd5b919050565b600060208284031215610b3057600080fd5b61074c82610b02565b600080600060408486031215610b4e57600080fd5b610b5784610b02565b9250602084013567ffffffffffffffff80821115610b7457600080fd5b818601915086601f830112610b8857600080fd5b813581811115610b9757600080fd5b876020828501011115610ba957600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b81811015610be957858101830151858201604001528201610bcd565b81811115610bfb576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610c4157600080fd5b8151801515811461074c57600080fd5b818382376000910190815291905056fea164736f6c634300080f000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a164736f6c634300080f000a","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 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xE91204DE GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE91204DE EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0xEA0A5237 EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0xF52CC7FD EQ PUSH2 0x29E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0xB696E7FA EQ PUSH2 0x1D8 JUMPI DUP1 PUSH4 0xB96EA12D EQ PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4B67F1A8 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x4B67F1A8 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x72C6838F EQ PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x11CDF27A EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x204BBEC7 EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x31662FD6 EQ PUSH2 0x131 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH2 0x2B1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x4 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 0xF7 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0xEFE JUMP JUMPDEST PUSH2 0x4B9 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0xFCC JUMP JUMPDEST PUSH2 0x94A JUMP JUMPDEST PUSH2 0xF7 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x16D CALLDATASIZE PUSH1 0x4 PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x128 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x195 JUMP JUMPDEST PUSH2 0x11C PUSH2 0x1E6 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0xFF8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x195 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x1011 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP3 MSTORE SWAP3 DUP5 MSTORE DUP3 DUP5 KECCAK256 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x286 CALLDATASIZE PUSH1 0x4 PUSH2 0x103D JUMP JUMPDEST PUSH2 0xA89 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x299 CALLDATASIZE PUSH1 0x4 PUSH2 0xDFE JUMP JUMPDEST PUSH2 0xB60 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0x107A JUMP JUMPDEST PUSH2 0xBFD JUMP JUMPDEST PUSH2 0x2B9 PUSH2 0xCEC JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x54FD4D50 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x306 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 0x32A SWAP2 SWAP1 PUSH2 0x10DE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 DUP6 MSTORE DUP3 DUP2 KECCAK256 DUP5 DUP3 MSTORE DUP6 MSTORE DUP3 DUP2 KECCAK256 DUP3 DUP3 MSTORE SWAP1 SWAP5 MSTORE SWAP3 KECCAK256 SLOAD SWAP4 SWAP5 POP SWAP2 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x3E8 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 0x4368756753706C61736852656769737472793A2076657273696F6E20616C7265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6164792073657400000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP7 DUP4 MSTORE PUSH1 0x5 DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND DUP5 OR SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE DUP3 SWAP2 DUP5 SWAP2 DUP7 SWAP2 PUSH32 0xAD4F648400B850E9D053DBBD943DC1F16F1DD948913439A82886D60B875FA961 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x551 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 0x4368756753706C61736852656769737472793A206F726720494420616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6479207265676973746572656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP3 DUP7 ADD MLOAD DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP2 DUP7 ADD MLOAD DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 DUP5 MSTORE PUSH1 0x4 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x612 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 0x4368756753706C61736852656769737472793A20696E76616C6964206D616E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6765722076657273696F6E000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x0 DUP6 ADDRESS ADDRESS PUSH1 0x40 MLOAD PUSH2 0x623 SWAP1 PUSH2 0xDC8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x667 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x6F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C61736852656769737472793A206661696C656420746F206465 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x706C6F79206D616E616765722070726F78790000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP1 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP3 MSTORE DUP1 DUP5 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 MLOAD PUSH4 0x4F1EF286 SWAP1 DUP6 SWAP1 PUSH2 0x792 SWAP1 DUP9 SWAP1 PUSH1 0x24 ADD PUSH2 0x1196 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x439FAB9100000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x822 SWAP3 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x11A9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x841 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 0x869 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x11D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8F28397000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH32 0x34F01AC8697184BB2B594A525AAF915E28334B8EE9CE73D80E3D0D08FADCD341 DUP9 CALLER DUP6 PUSH1 0x40 MLOAD PUSH2 0x939 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x124F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x952 PUSH2 0xCEC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x9EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4368756753706C61736852656769737472793A20636F6E7472616374206B696E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x642068617320616E206578697374696E67206164617074657200000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP6 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0xB2AE55A73412CEEF617C2ECEAD73F8D660A4904740FA33D050AE5D8B517D7B47 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xA7D PUSH2 0xCEC JUMP JUMPDEST PUSH2 0xA87 PUSH1 0x0 PUSH2 0xD53 JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xB0E 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 0x4368756753706C61736852656769737472793A206576656E74732063616E206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6C7920626520616E6E6F756E636564206279206D616E616765727300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD CALLER SWAP1 PUSH2 0xB1E SWAP1 DUP4 SWAP1 PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x795F66A5DA2ADDFEB09F1B32396FF2BE31A38EBE0F85FAE32133A226DBE065B3 DUP4 PUSH1 0x40 MLOAD PUSH2 0xB55 SWAP2 SWAP1 PUSH2 0x1196 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH2 0xB68 PUSH2 0xCEC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xBF1 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 0x3DF JUMP JUMPDEST PUSH2 0xBFA DUP2 PUSH2 0xD53 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC82 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 0x4368756753706C61736852656769737472793A206576656E74732063616E206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6C7920626520616E6E6F756E636564206279206D616E616765727300000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3DF JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH2 0xC90 SWAP2 SWAP1 PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 CALLER SWAP1 PUSH2 0xCA7 SWAP1 DUP6 SWAP1 PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x524CCD226C22CEFBC337F02A4EC771A77E2DF0925309645B4E79D650F11E2AA0 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xCE0 SWAP3 SWAP2 SWAP1 PUSH2 0x12A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xA87 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 0x3DF 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 PUSH2 0xDBC DUP1 PUSH2 0x12CA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xDF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE19 DUP3 PUSH2 0xDD5 JUMP JUMPDEST SWAP4 SWAP3 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 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xE78 JUMPI PUSH2 0xE78 PUSH2 0xE20 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xE9A JUMPI PUSH2 0xE9A PUSH2 0xE20 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 0xEB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xECC PUSH2 0xEC7 DUP3 PUSH2 0xE80 JUMP JUMPDEST PUSH2 0xE4F JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xEE1 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 0x0 DUP1 DUP5 DUP7 SUB PUSH1 0xC0 DUP2 SLT ISZERO PUSH2 0xF15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0xF25 PUSH1 0x20 DUP8 ADD PUSH2 0xDD5 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 DUP3 ADD SLT ISZERO PUSH2 0xF57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP3 DUP3 LT DUP2 DUP4 GT OR ISZERO PUSH2 0xF7C JUMPI PUSH2 0xF7C PUSH2 0xE20 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE PUSH1 0x40 DUP9 ADD CALLDATALOAD DUP4 MSTORE PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH1 0x40 DUP5 ADD MSTORE DUP3 SWAP5 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0xFB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0xFC0 DUP8 DUP3 DUP9 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xFEF PUSH1 0x20 DUP5 ADD PUSH2 0xDD5 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x100A 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 0x1026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x104F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1066 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1072 DUP5 DUP3 DUP6 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x108D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x10A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10B1 DUP7 DUP4 DUP8 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D4 DUP6 DUP3 DUP7 ADD PUSH2 0xEA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1113 JUMPI PUSH2 0x1113 PUSH2 0xE20 JUMP JUMPDEST DUP1 PUSH1 0x40 MSTORE POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1155 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x113D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1164 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1182 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x113A 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 0xE19 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x116A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1072 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x116A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x1212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x1220 PUSH2 0xEC7 DUP3 PUSH2 0xE80 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x1235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1246 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x113A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP 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 0x1246 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x116A JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x129A DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x113A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x12B7 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x116A JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1246 DUP2 DUP6 PUSH2 0x116A JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xDBC CODESIZE SUB DUP1 PUSH2 0xDBC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0xCB JUMP JUMPDEST DUP1 PUSH2 0x2C DUP2 PUSH2 0x3F JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x105 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xD9C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xD9C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0xE9 DUP2 PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0xFA DUP2 PUSH2 0xB3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xC6E PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x108 ADD MSTORE DUP2 DUP2 PUSH2 0x3C0 ADD MSTORE PUSH2 0x651 ADD MSTORE PUSH2 0xC6E PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x69 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0x12A JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x14A JUMPI PUSH2 0x78 JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xC9 JUMPI PUSH2 0x78 JUMP JUMPDEST CALLDATASIZE PUSH2 0x78 JUMPI PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x15F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x22F JUMP JUMPDEST PUSH2 0xB3 PUSH2 0xAE CALLDATASIZE PUSH1 0x4 PUSH2 0xB39 JUMP JUMPDEST PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x753 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x76 PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xB1E JUMP JUMPDEST PUSH2 0x7D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x81D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x189 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20C 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 0x50726F78793A20696D706C656D656E746174696F6E206E6F7420696E69746961 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C697A6564000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH2 0x229 JUMPI RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x26E JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH1 0x0 PUSH2 0x29D PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x314 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x2EE 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 0x312 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x386 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x409 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 0x42D SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x49F 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x4A8 DUP4 PUSH2 0x88F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4B5 PUSH2 0x15F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E2 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x4FF JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH1 0x0 PUSH2 0x52E PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 PUSH2 0x5A5 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE8EA2D08 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 0x57F 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 0x5A3 SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x617 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 0x4368756753706C6173684D616E6167657250726F78793A20657865637574696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E20696E2070726F677265737300000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x204BBEC700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x204BBEC7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x69A 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 0x6BE SWAP2 SWAP1 PUSH2 0xC2F JUMP JUMPDEST PUSH2 0x730 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 0x4368756753706C6173684D616E6167657250726F78793A20756E617070726F76 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564206D616E6167657200000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST PUSH2 0x73B DUP7 DUP7 DUP7 PUSH2 0x8DC JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x74C JUMP JUMPDEST PUSH2 0x74C PUSH2 0x15F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77D PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x79A JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x7CD PUSH2 0x15F JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x80F JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x847 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x864 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x7C5 JUMPI POP PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x8CE JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x4AD JUMPI PUSH2 0x4B5 DUP2 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x906 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x923 JUMPI POP CALLER ISZERO JUMPDEST ISZERO PUSH2 0x744 JUMPI PUSH2 0x931 DUP5 PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x94E SWAP3 SWAP2 SWAP1 PUSH2 0xC51 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x989 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 0x98E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F78793A2064656C656761746563616C6C20746F206E657720696D706C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D656E746174696F6E20636F6E7472616374206661696C656400000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x203 JUMP JUMPDEST SWAP2 POP PUSH2 0x74C SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA39 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74C DUP3 PUSH2 0xB02 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB57 DUP5 PUSH2 0xB02 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xB97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xBA9 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 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xBE9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0xBCD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x74C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"1242:5814:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6513:541;;;;;;:::i;:::-;;:::i;:::-;;2038:54;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;571:14:61;;564:22;546:41;;534:2;519:18;2038:54:34;;;;;;;;2970:1369;;;;;;:::i;:::-;;:::i;5740:362::-;;;;;;:::i;:::-;;:::i;1824:101:13:-;;;:::i;1829:43:34:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3536:42:61;3524:55;;;3506:74;;3494:2;3479:18;1829:43:34;3360:226:61;1201:85:13;1247:7;1273:6;;;1201:85;;1682:46:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1461:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2232:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4548:257;;;;;;:::i;:::-;;:::i;2074:198:13:-;;;;;;:::i;:::-;;:::i;5132:307:34:-;;;;;;:::i;:::-;;:::i;6513:541::-;1094:13:13;:11;:13::i;:::-;6580:22:34::1;6612:8;6605:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6657:13:::0;;6696::::1;::::0;;::::1;::::0;6735::::1;::::0;;::::1;::::0;6641::::1;6780:15:::0;;;:8:::1;:15:::0;;;;;:22;;;;;;;;:29;;;;;;;;;6580:51;;-1:-1:-1;6657:13:34;;6780:43:::1;:29;:43:::0;6759:129:::1;;;::::0;-1:-1:-1;;;6759:129:34;;5797:2:61;6759:129:34::1;::::0;::::1;5779:21:61::0;5836:2;5816:18;;;5809:30;5875:34;5855:18;;;5848:62;5946:9;5926:18;;;5919:37;5973:19;;6759:129:34::1;;;;;;;;;6899:32;::::0;::::1;;::::0;;;:22:::1;:32;::::0;;;;;;;:39;;;::::1;6934:4;6899:39;::::0;;6948:15;;;:8:::1;:15:::0;;;;;:22;;;;;;;;:29;;;;;;;;;:40;;;::::1;::::0;::::1;::::0;;7004:43;;3506:74:61;;;6948:29:34;;:22;;:15;;7004:43:::1;::::0;3479:18:61;7004:43:34::1;;;;;;;6570:484;;;;6513:541:::0;:::o;2970:1369::-;3210:1;3172:25;;;:8;:25;;;;;;3164:48;3172:25;3164:48;3143:140;;;;-1:-1:-1;;;3143:140:34;;6205:2:61;3143:140:34;;;6187:21:61;6244:2;6224:18;;;6217:30;6283:34;6263:18;;;6256:62;6354:15;6334:18;;;6327:43;6387:19;;3143:140:34;6003:409:61;3143:140:34;3325:14;;3294:19;3316:24;;;:8;:24;;;;;;;;3341:14;;;;3316:40;;;;;;;3357:14;;;;3316:56;;;;;;;;;;3390:35;;;:22;:35;;;;;;;;;3382:91;;;;-1:-1:-1;;;3382:91:34;;6619:2:61;3382:91:34;;;6601:21:61;6658:2;6638:18;;;6631:30;6697:34;6677:18;;;6670:62;6768:13;6748:18;;;6741:41;6799:19;;3382:91:34;6417:407:61;3382:91:34;3484:35;3556:15;3587:4;3613;3522:106;;;;;:::i;:::-;7040:42:61;7109:15;;;7091:34;;7161:15;;7156:2;7141:18;;7134:43;7018:2;7003:18;3522:106:34;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3484:144:34;-1:-1:-1;3660:35:34;;;3639:132;;;;-1:-1:-1;;;3639:132:34;;7390:2:61;3639:132:34;;;7372:21:61;7429:2;7409:18;;;7402:30;7468:34;7448:18;;;7441:62;7539:20;7519:18;;;7512:48;7577:19;;3639:132:34;7188:414:61;3639:132:34;3782:25;;;;:8;:25;;;;;;;;:58;;;;;;;;;;;;;3850:37;;;:14;:37;;;;;;:44;;;;;;;;;;3996:52;;3928:29;;3971:11;;3996:52;;4042:5;;3996:52;;;:::i;:::-;;;;-1:-1:-1;;3996:52:34;;;;;;;;;;;;;;;;;;;;3928:130;;3996:52;3928:130;;;;;;;;;3996:52;3928:130;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3928:130:34;;;;;;;;;;;;:::i;:::-;4124:32;;;;;:24;3524:55:61;;;4124:32:34;;;3506:74:61;3905:153:34;;-1:-1:-1;4124:24:34;;;;;;3479:18:61;;4124:32:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4246:11;4172:160;;4217:15;4172:160;4271:6;4291:10;4315:7;4172:160;;;;;;;;:::i;:::-;;;;;;;;3133:1206;;;2970:1369;;;;:::o;5740:362::-;1094:13:13;:11;:13::i;:::-;5899:1:34::1;5860:27:::0;;;:8:::1;:27;::::0;;;;;:41:::1;:27;:41:::0;5839:145:::1;;;::::0;-1:-1:-1;;;5839:145:34;;10039:2:61;5839:145:34::1;::::0;::::1;10021:21:61::0;10078:2;10058:18;;;10051:30;10117:34;10097:18;;;10090:62;10188:27;10168:18;;;10161:55;10233:19;;5839:145:34::1;9837:421:61::0;5839:145:34::1;5995:27;::::0;;;:8:::1;:27;::::0;;;;;;;;:38;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;6049:46;;10437:25:61;;;10478:18;;;10471:83;6049:46:34::1;::::0;10410:18:61;6049:46:34::1;;;;;;;5740:362:::0;;:::o;1824:101:13:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;4548:257:34:-;4643:10;4628:26;;;;:14;:26;;;;;;;;4607:133;;;;-1:-1:-1;;;4607:133:34;;10767:2:61;4607:133:34;;;10749:21:61;10806:2;10786:18;;;10779:30;10845:34;10825:18;;;10818:62;10916:30;10896:18;;;10889:58;10964:19;;4607:133:34;10565:424:61;4607:133:34;4756:42;;4779:10;;4756:42;;4771:6;;4756:42;:::i;:::-;;;;;;;;;4791:6;4756:42;;;;;;:::i;:::-;;;;;;;;4548:257;:::o;2074:198:13:-;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:13;;11701:2:61;2154:73:13::1;::::0;::::1;11683:21:61::0;11740:2;11720:18;;;11713:30;11779:34;11759:18;;;11752:62;11850:8;11830:18;;;11823:36;11876:19;;2154:73:13::1;11499:402:61::0;2154:73:13::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;5132:307:34:-;5255:10;5240:26;;;;:14;:26;;;;;;;;5219:133;;;;-1:-1:-1;;;5219:133:34;;10767:2:61;5219:133:34;;;10749:21:61;10806:2;10786:18;;;10779:30;10845:34;10825:18;;;10818:62;10916:30;10896:18;;;10889:58;10964:19;;5219:133:34;10565:424:61;5219:133:34;5411:5;5368:64;;;;;;:::i;:::-;;;;;;;;;;5399:10;;5368:64;;5391:6;;5368:64;:::i;:::-;;;;;;;;;5418:6;5426:5;5368:64;;;;;;;:::i;:::-;;;;;;;;5132:307;;:::o;1359:130:13:-;1247:7;1273:6;1422:23;1273:6;719:10:17;1422:23:13;1414:68;;;;-1:-1:-1;;;1414:68:13;;12771:2:61;1414:68:13;;;12753:21:61;;;12790:18;;;12783:30;12849:34;12829:18;;;12822:62;12901:18;;1414:68:13;12569:356:61;2426:187:13;2499:16;2518:6;;;2534:17;;;;;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:196:61:-;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:61:o;598:184::-;650:77;647:1;640:88;747:4;744:1;737:15;771:4;768:1;761:15;787:334;858:2;852:9;914:2;904:13;;-1:-1:-1;;900:86:61;888:99;;1017:18;1002:34;;1038:22;;;999:62;996:88;;;1064:18;;:::i;:::-;1100:2;1093:22;787:334;;-1:-1:-1;787:334:61:o;1126:245::-;1174:4;1207:18;1199:6;1196:30;1193:56;;;1229:18;;:::i;:::-;-1:-1:-1;1286:2:61;1274:15;-1:-1:-1;;1270:88:61;1360:4;1266:99;;1126:245::o;1376:462::-;1418:5;1471:3;1464:4;1456:6;1452:17;1448:27;1438:55;;1489:1;1486;1479:12;1438:55;1525:6;1512:20;1556:48;1572:31;1600:2;1572:31;:::i;:::-;1556:48;:::i;:::-;1629:2;1620:7;1613:19;1675:3;1668:4;1663:2;1655:6;1651:15;1647:26;1644:35;1641:55;;;1692:1;1689;1682:12;1641:55;1757:2;1750:4;1742:6;1738:17;1731:4;1722:7;1718:18;1705:55;1805:1;1780:16;;;1798:4;1776:27;1769:38;;;;1784:7;1376:462;-1:-1:-1;;;1376:462:61:o;1843:1068::-;1963:6;1971;1979;1987;2031:9;2022:7;2018:23;2061:3;2057:2;2053:12;2050:32;;;2078:1;2075;2068:12;2050:32;2114:9;2101:23;2091:33;;2143:38;2177:2;2166:9;2162:18;2143:38;:::i;:::-;2133:48;;2274:4;2205:66;2201:2;2197:75;2193:86;2190:106;;;2292:1;2289;2282:12;2190:106;;2325:2;2319:9;2367:4;2359:6;2355:17;2391:18;2459:6;2447:10;2444:22;2439:2;2427:10;2424:18;2421:46;2418:72;;;2470:18;;:::i;:::-;2510:10;2506:2;2499:22;2573:2;2562:9;2558:18;2545:32;2537:6;2530:48;2639:4;2628:9;2624:20;2611:34;2606:2;2598:6;2594:15;2587:59;2707:3;2696:9;2692:19;2679:33;2674:2;2666:6;2662:15;2655:58;2732:6;2722:16;;2789:3;2778:9;2774:19;2761:33;2747:47;;2817:2;2809:6;2806:14;2803:34;;;2833:1;2830;2823:12;2803:34;;;2856:49;2897:7;2888:6;2877:9;2873:22;2856:49;:::i;:::-;2846:59;;;1843:1068;;;;;;;:::o;2916:254::-;2984:6;2992;3045:2;3033:9;3024:7;3020:23;3016:32;3013:52;;;3061:1;3058;3051:12;3013:52;3097:9;3084:23;3074:33;;3126:38;3160:2;3149:9;3145:18;3126:38;:::i;:::-;3116:48;;2916:254;;;;;:::o;3175:180::-;3234:6;3287:2;3275:9;3266:7;3262:23;3258:32;3255:52;;;3303:1;3300;3293:12;3255:52;-1:-1:-1;3326:23:61;;3175:180;-1:-1:-1;3175:180:61:o;3838:316::-;3915:6;3923;3931;3984:2;3972:9;3963:7;3959:23;3955:32;3952:52;;;4000:1;3997;3990:12;3952:52;-1:-1:-1;;4023:23:61;;;4093:2;4078:18;;4065:32;;-1:-1:-1;4144:2:61;4129:18;;;4116:32;;3838:316;-1:-1:-1;3838:316:61:o;4159:321::-;4228:6;4281:2;4269:9;4260:7;4256:23;4252:32;4249:52;;;4297:1;4294;4287:12;4249:52;4337:9;4324:23;4370:18;4362:6;4359:30;4356:50;;;4402:1;4399;4392:12;4356:50;4425:49;4466:7;4457:6;4446:9;4442:22;4425:49;:::i;:::-;4415:59;4159:321;-1:-1:-1;;;;4159:321:61:o;4485:540::-;4572:6;4580;4633:2;4621:9;4612:7;4608:23;4604:32;4601:52;;;4649:1;4646;4639:12;4601:52;4689:9;4676:23;4718:18;4759:2;4751:6;4748:14;4745:34;;;4775:1;4772;4765:12;4745:34;4798:49;4839:7;4830:6;4819:9;4815:22;4798:49;:::i;:::-;4788:59;;4900:2;4889:9;4885:18;4872:32;4856:48;;4929:2;4919:8;4916:16;4913:36;;;4945:1;4942;4935:12;4913:36;;4968:51;5011:7;5000:8;4989:9;4985:24;4968:51;:::i;:::-;4958:61;;;4485:540;;;;;:::o;5030:560::-;5125:6;5178:2;5166:9;5157:7;5153:23;5149:32;5146:52;;;5194:1;5191;5184:12;5146:52;5227:2;5221:9;5269:2;5261:6;5257:15;5338:6;5326:10;5323:22;5302:18;5290:10;5287:34;5284:62;5281:88;;;5349:18;;:::i;:::-;5389:10;5385:2;5378:22;;5430:9;5424:16;5416:6;5409:32;5495:2;5484:9;5480:18;5474:25;5469:2;5461:6;5457:15;5450:50;5554:2;5543:9;5539:18;5533:25;5528:2;5520:6;5516:15;5509:50;5578:6;5568:16;;;5030:560;;;;:::o;7607:258::-;7679:1;7689:113;7703:6;7700:1;7697:13;7689:113;;;7779:11;;;7773:18;7760:11;;;7753:39;7725:2;7718:10;7689:113;;;7820:6;7817:1;7814:13;7811:48;;;7855:1;7846:6;7841:3;7837:16;7830:27;7811:48;;7607:258;;;:::o;7870:316::-;7911:3;7949:5;7943:12;7976:6;7971:3;7964:19;7992:63;8048:6;8041:4;8036:3;8032:14;8025:4;8018:5;8014:16;7992:63;:::i;:::-;8100:2;8088:15;-1:-1:-1;;8084:88:61;8075:98;;;;8175:4;8071:109;;7870:316;-1:-1:-1;;7870:316:61:o;8191:217::-;8338:2;8327:9;8320:21;8301:4;8358:44;8398:2;8387:9;8383:18;8375:6;8358:44;:::i;8413:337::-;8600:42;8592:6;8588:55;8577:9;8570:74;8680:2;8675;8664:9;8660:18;8653:30;8551:4;8700:44;8740:2;8729:9;8725:18;8717:6;8700:44;:::i;8755:634::-;8834:6;8887:2;8875:9;8866:7;8862:23;8858:32;8855:52;;;8903:1;8900;8893:12;8855:52;8936:9;8930:16;8969:18;8961:6;8958:30;8955:50;;;9001:1;8998;8991:12;8955:50;9024:22;;9077:4;9069:13;;9065:27;-1:-1:-1;9055:55:61;;9106:1;9103;9096:12;9055:55;9135:2;9129:9;9160:48;9176:31;9204:2;9176:31;:::i;9160:48::-;9231:2;9224:5;9217:17;9271:7;9266:2;9261;9257;9253:11;9249:20;9246:33;9243:53;;;9292:1;9289;9282:12;9243:53;9305:54;9356:2;9351;9344:5;9340:14;9335:2;9331;9327:11;9305:54;:::i;:::-;9378:5;8755:634;-1:-1:-1;;;;;8755:634:61:o;9394:438::-;9560:4;9589:42;9670:2;9662:6;9658:15;9647:9;9640:34;9722:2;9714:6;9710:15;9705:2;9694:9;9690:18;9683:43;;9762:2;9757;9746:9;9742:18;9735:30;9782:44;9822:2;9811:9;9807:18;9799:6;9782:44;:::i;10994:276::-;11125:3;11163:6;11157:13;11179:53;11225:6;11220:3;11213:4;11205:6;11201:17;11179:53;:::i;:::-;11248:16;;;;;10994:276;-1:-1:-1;;10994:276:61:o;12185:379::-;12380:2;12369:9;12362:21;12343:4;12406:44;12446:2;12435:9;12431:18;12423:6;12406:44;:::i;:::-;12498:9;12490:6;12486:22;12481:2;12470:9;12466:18;12459:50;12526:32;12551:6;12543;12526:32;:::i"},"methodIdentifiers":{"adapters(bytes32)":"72c6838f","addContractKind(bytes32,address)":"4b67f1a8","addVersion(address)":"11cdf27a","announce(string)":"ea0a5237","announceWithData(string,bytes)":"f52cc7fd","finalizeRegistration(bytes32,address,(uint256,uint256,uint256),bytes)":"31662fd6","managerImplementations(address)":"204bbec7","managerProxies(address)":"b696e7fa","owner()":"8da5cb5b","projects(bytes32)":"b96ea12d","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","versions(uint256,uint256,uint256)":"e91204de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"organizationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"managerImpl\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"retdata\",\"type\":\"bytes\"}],\"name\":\"ChugSplashRegistrationFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"}],\"name\":\"ContractKindAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"eventNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"eventName\",\"type\":\"string\"}],\"name\":\"EventAnnounced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"eventNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"dataHash\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"eventName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"EventAnnouncedWithData\",\"type\":\"event\"},{\"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\":true,\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"VersionAdded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"adapters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractKindHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_adapter\",\"type\":\"address\"}],\"name\":\"addContractKind\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_event\",\"type\":\"string\"}],\"name\":\"announce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_event\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"announceWithData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_organizationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"_version\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"managerImplementations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"managerProxies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"projects\",\"outputs\":[{\"internalType\":\"address payable\",\"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\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"versions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addContractKind(bytes32,address)\":{\"params\":{\"_adapter\":\"Address of the adapter for this contract kind.\",\"_contractKindHash\":\"Hash representing the contract kind.\"}},\"addVersion(address)\":{\"params\":{\"_manager\":\"Address of the ChugSplashManager implementation to add.\"}},\"announce(string)\":{\"params\":{\"_event\":\"Name of the event to announce.\"}},\"announceWithData(string,bytes)\":{\"params\":{\"_data\":\"Arbitrary data to include in the announced event.\",\"_event\":\"Name of the event to announce.\"}},\"constructor\":{\"params\":{\"_owner\":\"Address of the owner of the registry.\"}},\"finalizeRegistration(bytes32,address,(uint256,uint256,uint256),bytes)\":{\"params\":{\"_data\":\"Any data to pass to the ChugSplashManager initializer.\",\"_organizationID\":\"Organization ID being registered.\",\"_owner\":\"Initial owner for the new project.\",\"_version\":\"Version of the ChugSplashManager implementation.\"}},\"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.\"}},\"title\":\"ChugSplashRegistry\",\"version\":1},\"userdoc\":{\"events\":{\"ChugSplashRegistrationFinalized(bytes32,address,address,address,bytes)\":{\"notice\":\"Emitted whenever registration is finalized for a given organization ID.\"},\"ContractKindAdded(bytes32,address)\":{\"notice\":\"Emitted whenever a new contract kind is added.\"},\"EventAnnounced(string,address,string)\":{\"notice\":\"Emitted whenever a ChugSplashManager contract announces an event on the registry. We         use this to avoid needing a complex indexing system when we're trying to find events         emitted by the various manager contracts.\"},\"EventAnnouncedWithData(string,address,bytes,string,bytes)\":{\"notice\":\"Emitted whenever a ChugSplashManager contract wishes to announce an event on the         registry, including a field for arbitrary data. We use this to avoid needing a         complex indexing system when we're trying to find events emitted by the various         manager contracts.\"},\"VersionAdded(uint256,uint256,uint256,address)\":{\"notice\":\"Emitted whenever a new ChugSplashManager implementation is added.\"}},\"kind\":\"user\",\"methods\":{\"adapters(bytes32)\":{\"notice\":\"Mapping of contract kind hashes to adapter contract addresses.\"},\"addContractKind(bytes32,address)\":{\"notice\":\"Adds a new contract kind with a corresponding adapter. Only callable by the owner of the ChugSplashRegistry.\"},\"addVersion(address)\":{\"notice\":\"Adds a new version of the ChugSplashManager implementation. Only callable by the owner of the ChugSplashRegistry.  The version is specified by the `Semver` contract      attached to the implementation. Throws an error if the version      has already been set.\"},\"announce(string)\":{\"notice\":\"Allows ChugSplashManager contracts to announce events. Only callable by ChugSplashManagerProxy contracts.\"},\"announceWithData(string,bytes)\":{\"notice\":\"Allows ChugSplashManager contracts to announce events, including a field for         arbitrary data.  Only callable by ChugSplashManagerProxy contracts.\"},\"finalizeRegistration(bytes32,address,(uint256,uint256,uint256),bytes)\":{\"notice\":\"Finalizes the registration of an organization ID by deploying a new ChugSplashManagerProxy contract and setting the provided owner as the initial owner of the new project.\"},\"managerImplementations(address)\":{\"notice\":\"Mapping of ChugSplashManager implementations to a boolean indicating whether or not         it's a valid implementation.\"},\"managerProxies(address)\":{\"notice\":\"Mapping of ChugSplashManagerProxy addresses to a boolean indicating whether or not         it was deployed by this contract.\"},\"projects(bytes32)\":{\"notice\":\"Mapping of organization IDs to ChugSplashManagerProxy addresses.\"},\"versions(uint256,uint256,uint256)\":{\"notice\":\"Mapping of (major, minor, patch) versions to ChugSplashManager implementation         address.\"}},\"notice\":\"The ChugSplashRegistry is the root contract for the ChugSplash deployment system. This         contract allows callers to register new projects. Also, every event emitted in the         ChugSplash system is announced through this contract. This makes it easy for clients to         find and index events that occur throughout the deployment process. Lastly, the owner of         this contract is able to add support for new contract kinds (e.g. OpenZeppelin's Transparent proxy). The owner can also new versions of the ChugSplashManager         implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ChugSplashRegistry.sol\":\"ChugSplashRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/ChugSplashManagerProxy.sol\":{\"keccak256\":\"0x08f7a01c1e8ed1a3ace823da2c800cac83ee0f1b686fa7d2aa9448fe9108b738\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c02af117c8c34ba3844d1a860cf5252601c649e085d33b8f1d148afa4a7e3d53\",\"dweb:/ipfs/QmSdAQDa9XkHCZ5GiG9mefe8Dyk5p54xQAfWNfy72e7dQY\"]},\"contracts/ChugSplashRegistry.sol\":{\"keccak256\":\"0xf21f036ad9a065f394db4f71f3b81a5c3bc53c82548db977a3cb4cb13045eb23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://157bbd56debc2fb38e71a25d5f07d95f177196dccf9cd9fc3c127b83e2a7edca\",\"dweb:/ipfs/QmXWqnsD1pWF1UGJ2nf553XED6TtszzoTcxeRmcj9kZSvL\"]},\"contracts/ChugSplashRegistryEvents.sol\":{\"keccak256\":\"0x118e5d3674d77632a6ef220f4e3b382874f43667cda8f4221691c8b0145361d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db406839a33143ecd104e076e325f46d571a1eb6faa7c5925f6c578b9ab3091f\",\"dweb:/ipfs/QmRLDpdGgB8erEniC17xWTRkUMAaueot1QT9mty95ugmxo\"]},\"contracts/Semver.sol\":{\"keccak256\":\"0x52d8f765cd6217080ac1f72ec9e3c890266721dac6140a57191b06929d24998f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b43be60ae13919f8e4a33176b0688d862e6beb96e82061419247a76f49f3905\",\"dweb:/ipfs/QmTd8jUQs9miD6r5vKjcC1xsoMhoKECSSUiQugKn5Qsjgx\"]},\"contracts/interfaces/IChugSplashManager.sol\":{\"keccak256\":\"0x37998e41256bc1141a1942cdd3a78937624b0cf76191fdc5c31dd7d38a6683e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7071f51a896ef06e787ea998ba876d461ef6828cfa3a5c9e3b6a456efd36f8\",\"dweb:/ipfs/QmXP3vojTfjiNqvXNxprz166wJXnqMvTL3bmdNdZv9rgfG\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":2192,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":2329,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"_initialized","offset":20,"slot":"0","type":"t_uint8"},{"astId":2332,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"_initializing","offset":21,"slot":"0","type":"t_bool"},{"astId":8336,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"projects","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_address_payable)"},{"astId":8341,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"managerProxies","offset":0,"slot":"2","type":"t_mapping(t_address,t_bool)"},{"astId":8346,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"adapters","offset":0,"slot":"3","type":"t_mapping(t_bytes32,t_address)"},{"astId":8351,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"managerImplementations","offset":0,"slot":"4","type":"t_mapping(t_address,t_bool)"},{"astId":8360,"contract":"contracts/ChugSplashRegistry.sol:ChugSplashRegistry","label":"versions","offset":0,"slot":"5","type":"t_mapping(t_uint256,t_mapping(t_uint256,t_mapping(t_uint256,t_address)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","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_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_bytes32,t_address_payable)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address payable)","numberOfBytes":"32","value":"t_address_payable"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_mapping(t_uint256,t_address))":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => mapping(uint256 => address))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_address)"},"t_mapping(t_uint256,t_mapping(t_uint256,t_mapping(t_uint256,t_address)))":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => mapping(uint256 => mapping(uint256 => address)))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_mapping(t_uint256,t_address))"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/ChugSplashRegistryEvents.sol":{"ChugSplashRegistryEvents":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"organizationID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"managerImpl","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bytes","name":"retdata","type":"bytes"}],"name":"ChugSplashRegistrationFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"adapter","type":"address"}],"name":"ContractKindAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"eventNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"string","name":"eventName","type":"string"}],"name":"EventAnnounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"eventNameHash","type":"string"},{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":true,"internalType":"bytes","name":"dataHash","type":"bytes"},{"indexed":false,"internalType":"string","name":"eventName","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"EventAnnouncedWithData","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"major","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"minor","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"patch","type":"uint256"},{"indexed":false,"internalType":"address","name":"manager","type":"address"}],"name":"VersionAdded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"57:3065:35:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"57:3065:35:-:0;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"organizationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"managerImpl\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"retdata\",\"type\":\"bytes\"}],\"name\":\"ChugSplashRegistrationFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"adapter\",\"type\":\"address\"}],\"name\":\"ContractKindAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"eventNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"eventName\",\"type\":\"string\"}],\"name\":\"EventAnnounced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"eventNameHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"dataHash\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"eventName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"EventAnnouncedWithData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"VersionAdded\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"ChugSplashRegistrationFinalized(bytes32,address,address,address,bytes)\":{\"params\":{\"caller\":\"Address that finalized registration.\",\"managerImpl\":\"Address of the initial ChugSplashManager implementation for this                       project.\",\"organizationID\":\"Organization ID that was registered.\",\"owner\":\"Address of the initial owner of the project.\",\"retdata\":\"Return data from the ChugSplashManager initializer.\"}},\"ContractKindAdded(bytes32,address)\":{\"params\":{\"adapter\":\"Address of the adapter for the contract kind.\",\"contractKindHash\":\"Hash representing the contract kind.\"}},\"EventAnnounced(string,address,string)\":{\"params\":{\"eventName\":\"Name of the event being announced.\",\"eventNameHash\":\"Hash of the name of the event being announced.\",\"manager\":\"Address of the ChugSplashManagerProxy announcing an event.\"}},\"EventAnnouncedWithData(string,address,bytes,string,bytes)\":{\"params\":{\"data\":\"The extra data.\",\"dataHash\":\"Hash of the extra data sent by the ChugSplashManager.\",\"eventName\":\"Name of the event being announced.\",\"eventNameHash\":\"Hash of the name of the event being announced.\",\"manager\":\"Address of the ChugSplashManagerProxy announcing an event.\"}},\"VersionAdded(uint256,uint256,uint256,address)\":{\"params\":{\"major\":\"Major version of the ChugSplashManager.\",\"manager\":\"Address of the ChugSplashManager implementation.\",\"minor\":\"Minor version of the ChugSplashManager.\",\"patch\":\"Patch version of the ChugSplashManager.\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"ChugSplashRegistrationFinalized(bytes32,address,address,address,bytes)\":{\"notice\":\"Emitted whenever registration is finalized for a given organization ID.\"},\"ContractKindAdded(bytes32,address)\":{\"notice\":\"Emitted whenever a new contract kind is added.\"},\"EventAnnounced(string,address,string)\":{\"notice\":\"Emitted whenever a ChugSplashManager contract announces an event on the registry. We         use this to avoid needing a complex indexing system when we're trying to find events         emitted by the various manager contracts.\"},\"EventAnnouncedWithData(string,address,bytes,string,bytes)\":{\"notice\":\"Emitted whenever a ChugSplashManager contract wishes to announce an event on the         registry, including a field for arbitrary data. We use this to avoid needing a         complex indexing system when we're trying to find events emitted by the various         manager contracts.\"},\"VersionAdded(uint256,uint256,uint256,address)\":{\"notice\":\"Emitted whenever a new ChugSplashManager implementation is added.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ChugSplashRegistryEvents.sol\":\"ChugSplashRegistryEvents\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/ChugSplashRegistryEvents.sol\":{\"keccak256\":\"0x118e5d3674d77632a6ef220f4e3b382874f43667cda8f4221691c8b0145361d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db406839a33143ecd104e076e325f46d571a1eb6faa7c5925f6c578b9ab3091f\",\"dweb:/ipfs/QmRLDpdGgB8erEniC17xWTRkUMAaueot1QT9mty95ugmxo\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/DefaultCreate3.sol":{"DefaultCreate3":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_creationCode","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"deploy","outputs":[{"internalType":"address","name":"deployed","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_deployer","type":"address"}],"name":"getAddressFromDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506106d3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321f8a72114610046578063c7aeef0f14610082578063e4e1314014610095575b600080fd5b610059610054366004610518565b6100a8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b610059610090366004610560565b6100b9565b6100596100a3366004610642565b6100ce565b60006100b38261020f565b92915050565b60006100c6848484610341565b949350505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091526bffffffffffffffffffffffff19606083901b166021820152603581018390527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201526000908190610198906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201526bffffffffffffffffffffffff19606083901b1660228201527f010000000000000000000000000000000000000000000000000000000000000060368201529091506100c69060370161017f565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091526bffffffffffffffffffffffff193060601b166021820152603581018290527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f605582015260009081906102c39060750161017f565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201526bffffffffffffffffffffffff19606083901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015290915061033a9060370161017f565b9392505050565b6000806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090506000858251602084016000f5905073ffffffffffffffffffffffffffffffffffffffff811661040c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6104158661020f565b925060008173ffffffffffffffffffffffffffffffffffffffff16858760405161043f919061068b565b60006040518083038185875af1925050503d806000811461047c576040519150601f19603f3d011682016040523d82523d6000602084013e610481565b606091505b505090508080156104a8575073ffffffffffffffffffffffffffffffffffffffff84163b15155b61050e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606401610403565b5050509392505050565b60006020828403121561052a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561057557600080fd5b83359250602084013567ffffffffffffffff8082111561059457600080fd5b818601915086601f8301126105a857600080fd5b8135818111156105ba576105ba610531565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561060057610600610531565b8160405282815289602084870101111561061957600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b6000806040838503121561065557600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461068057600080fd5b809150509250929050565b6000825160005b818110156106ac5760208186018101518583015201610692565b818111156106bb576000828501525b50919091019291505056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D3 DUP1 PUSH2 0x20 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x21F8A721 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xC7AEEF0F EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xE4E13140 EQ PUSH2 0x95 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x54 CALLDATASIZE PUSH1 0x4 PUSH2 0x518 JUMP JUMPDEST PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x560 JUMP JUMPDEST PUSH2 0xB9 JUMP JUMPDEST PUSH2 0x59 PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x642 JUMP JUMPDEST PUSH2 0xCE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB3 DUP3 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC6 DUP5 DUP5 DUP5 PUSH2 0x341 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x21 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x21C35DBE1B344A2488CF3321D6CE542F8E9F305544FF09E4993A62319A497C1F PUSH1 0x55 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x198 SWAP1 PUSH1 0x75 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD694000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x22 DUP3 ADD MSTORE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 PUSH1 0x36 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xC6 SWAP1 PUSH1 0x37 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x21 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x21C35DBE1B344A2488CF3321D6CE542F8E9F305544FF09E4993A62319A497C1F PUSH1 0x55 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x2C3 SWAP1 PUSH1 0x75 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD694000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x22 DUP3 ADD MSTORE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 PUSH1 0x36 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x33A SWAP1 PUSH1 0x37 ADD PUSH2 0x17F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP6 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x40C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4445504C4F594D454E545F4641494C4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x415 DUP7 PUSH2 0x20F JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x68B 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 0x47C 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 0x481 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x4A8 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO ISZERO JUMPDEST PUSH2 0x50E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E495449414C495A4154494F4E5F4641494C45440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x403 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52A 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 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x5BA JUMPI PUSH2 0x5BA PUSH2 0x531 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 0x600 JUMPI PUSH2 0x600 PUSH2 0x531 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x619 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 SWAP7 POP POP POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6AC JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x692 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6BB JUMPI PUSH1 0x0 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"454:1589:36:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@deploy_10372":{"entryPoint":833,"id":10372,"parameterSlots":3,"returnSlots":1},"@deploy_8750":{"entryPoint":185,"id":8750,"parameterSlots":3,"returnSlots":1},"@fromLast20Bytes_10283":{"entryPoint":null,"id":10283,"parameterSlots":1,"returnSlots":1},"@getAddressFromDeployer_8802":{"entryPoint":206,"id":8802,"parameterSlots":2,"returnSlots":1},"@getAddress_8764":{"entryPoint":168,"id":8764,"parameterSlots":1,"returnSlots":1},"@getDeployed_10411":{"entryPoint":527,"id":10411,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":1304,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":1602,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bytes_memory_ptrt_uint256":{"entryPoint":1376,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1675,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf_t_address_t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2__to_t_string_memory_ptr_t_address_t_string_memory_ptr__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_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":1329,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4444:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:61","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:61"},"nodeType":"YulFunctionCall","src":"132:12:61"},"nodeType":"YulExpressionStatement","src":"132:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:61"},"nodeType":"YulFunctionCall","src":"101:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:61"},"nodeType":"YulFunctionCall","src":"97:32:61"},"nodeType":"YulIf","src":"94:52:61"},{"nodeType":"YulAssignment","src":"155:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:61"},"nodeType":"YulFunctionCall","src":"165:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:61","type":""}],"src":"14:180:61"},{"body":{"nodeType":"YulBlock","src":"300:125:61","statements":[{"nodeType":"YulAssignment","src":"310:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"333:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"318:3:61"},"nodeType":"YulFunctionCall","src":"318:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"310:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"352:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"367:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"375:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"363:3:61"},"nodeType":"YulFunctionCall","src":"363:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"345:6:61"},"nodeType":"YulFunctionCall","src":"345:74:61"},"nodeType":"YulExpressionStatement","src":"345:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"280:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"291:4:61","type":""}],"src":"199:226:61"},{"body":{"nodeType":"YulBlock","src":"462:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"479:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"482:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"472:6:61"},"nodeType":"YulFunctionCall","src":"472:88:61"},"nodeType":"YulExpressionStatement","src":"472:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"576:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"579:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"569:6:61"},"nodeType":"YulFunctionCall","src":"569:15:61"},"nodeType":"YulExpressionStatement","src":"569:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"600:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"603:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"593:6:61"},"nodeType":"YulFunctionCall","src":"593:15:61"},"nodeType":"YulExpressionStatement","src":"593:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"430:184:61"},{"body":{"nodeType":"YulBlock","src":"732:1003:61","statements":[{"body":{"nodeType":"YulBlock","src":"778:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"787:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"790:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"780:6:61"},"nodeType":"YulFunctionCall","src":"780:12:61"},"nodeType":"YulExpressionStatement","src":"780:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"753:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"762:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"749:3:61"},"nodeType":"YulFunctionCall","src":"749:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"774:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"745:3:61"},"nodeType":"YulFunctionCall","src":"745:32:61"},"nodeType":"YulIf","src":"742:52:61"},{"nodeType":"YulAssignment","src":"803:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"826:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"813:12:61"},"nodeType":"YulFunctionCall","src":"813:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"803:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"845:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"876:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"887:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"872:3:61"},"nodeType":"YulFunctionCall","src":"872:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"859:12:61"},"nodeType":"YulFunctionCall","src":"859:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"849:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"900:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"910:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"904:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"955:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"964:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"967:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"957:6:61"},"nodeType":"YulFunctionCall","src":"957:12:61"},"nodeType":"YulExpressionStatement","src":"957:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"943:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"951:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"940:2:61"},"nodeType":"YulFunctionCall","src":"940:14:61"},"nodeType":"YulIf","src":"937:34:61"},{"nodeType":"YulVariableDeclaration","src":"980:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"994:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"1005:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"990:3:61"},"nodeType":"YulFunctionCall","src":"990:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"984:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1060:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1069:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1072:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1062:6:61"},"nodeType":"YulFunctionCall","src":"1062:12:61"},"nodeType":"YulExpressionStatement","src":"1062:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1039:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1043:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1035:3:61"},"nodeType":"YulFunctionCall","src":"1035:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1050:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1031:3:61"},"nodeType":"YulFunctionCall","src":"1031:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1024:6:61"},"nodeType":"YulFunctionCall","src":"1024:35:61"},"nodeType":"YulIf","src":"1021:55:61"},{"nodeType":"YulVariableDeclaration","src":"1085:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1108:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1095:12:61"},"nodeType":"YulFunctionCall","src":"1095:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1089:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1134:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1136:16:61"},"nodeType":"YulFunctionCall","src":"1136:18:61"},"nodeType":"YulExpressionStatement","src":"1136:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1126:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1130:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1123:2:61"},"nodeType":"YulFunctionCall","src":"1123:10:61"},"nodeType":"YulIf","src":"1120:36:61"},{"nodeType":"YulVariableDeclaration","src":"1165:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1175:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1169:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1250:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1270:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1264:5:61"},"nodeType":"YulFunctionCall","src":"1264:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1254:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1282:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1304:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1328:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1332:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1324:3:61"},"nodeType":"YulFunctionCall","src":"1324:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"1339:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1320:3:61"},"nodeType":"YulFunctionCall","src":"1320:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"1344:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1316:3:61"},"nodeType":"YulFunctionCall","src":"1316:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"1349:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1312:3:61"},"nodeType":"YulFunctionCall","src":"1312:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:61"},"nodeType":"YulFunctionCall","src":"1300:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1286:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1412:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1414:16:61"},"nodeType":"YulFunctionCall","src":"1414:18:61"},"nodeType":"YulExpressionStatement","src":"1414:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1371:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1383:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1368:2:61"},"nodeType":"YulFunctionCall","src":"1368:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1391:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1403:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1388:2:61"},"nodeType":"YulFunctionCall","src":"1388:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1365:2:61"},"nodeType":"YulFunctionCall","src":"1365:46:61"},"nodeType":"YulIf","src":"1362:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1450:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1454:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1443:6:61"},"nodeType":"YulFunctionCall","src":"1443:22:61"},"nodeType":"YulExpressionStatement","src":"1443:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1481:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1489:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1474:6:61"},"nodeType":"YulFunctionCall","src":"1474:18:61"},"nodeType":"YulExpressionStatement","src":"1474:18:61"},{"body":{"nodeType":"YulBlock","src":"1538:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1547:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1550:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1540:6:61"},"nodeType":"YulFunctionCall","src":"1540:12:61"},"nodeType":"YulExpressionStatement","src":"1540:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1515:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1519:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1511:3:61"},"nodeType":"YulFunctionCall","src":"1511:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1507:3:61"},"nodeType":"YulFunctionCall","src":"1507:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1529:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1504:2:61"},"nodeType":"YulFunctionCall","src":"1504:33:61"},"nodeType":"YulIf","src":"1501:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1580:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1588:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1576:3:61"},"nodeType":"YulFunctionCall","src":"1576:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1597:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1601:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1593:3:61"},"nodeType":"YulFunctionCall","src":"1593:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1606:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1563:12:61"},"nodeType":"YulFunctionCall","src":"1563:46:61"},"nodeType":"YulExpressionStatement","src":"1563:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1633:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1641:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1629:3:61"},"nodeType":"YulFunctionCall","src":"1629:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1646:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1625:3:61"},"nodeType":"YulFunctionCall","src":"1625:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"1651:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1618:6:61"},"nodeType":"YulFunctionCall","src":"1618:35:61"},"nodeType":"YulExpressionStatement","src":"1618:35:61"},{"nodeType":"YulAssignment","src":"1662:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1672:6:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1662:6:61"}]},{"nodeType":"YulAssignment","src":"1687:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1714:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1725:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1710:3:61"},"nodeType":"YulFunctionCall","src":"1710:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1697:12:61"},"nodeType":"YulFunctionCall","src":"1697:32:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1687:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"682:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"693:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"705:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"713:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"721:6:61","type":""}],"src":"619:1116:61"},{"body":{"nodeType":"YulBlock","src":"1827:290:61","statements":[{"body":{"nodeType":"YulBlock","src":"1873:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1882:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1885:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1875:6:61"},"nodeType":"YulFunctionCall","src":"1875:12:61"},"nodeType":"YulExpressionStatement","src":"1875:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1848:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1857:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1844:3:61"},"nodeType":"YulFunctionCall","src":"1844:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1869:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1840:3:61"},"nodeType":"YulFunctionCall","src":"1840:32:61"},"nodeType":"YulIf","src":"1837:52:61"},{"nodeType":"YulAssignment","src":"1898:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1921:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1908:12:61"},"nodeType":"YulFunctionCall","src":"1908:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1898:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1940:45:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1970:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1981:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1966:3:61"},"nodeType":"YulFunctionCall","src":"1966:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1953:12:61"},"nodeType":"YulFunctionCall","src":"1953:32:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1944:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2071:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2080:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2083:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2073:6:61"},"nodeType":"YulFunctionCall","src":"2073:12:61"},"nodeType":"YulExpressionStatement","src":"2073:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2007:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2018:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"2025:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2014:3:61"},"nodeType":"YulFunctionCall","src":"2014:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2004:2:61"},"nodeType":"YulFunctionCall","src":"2004:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1997:6:61"},"nodeType":"YulFunctionCall","src":"1997:73:61"},"nodeType":"YulIf","src":"1994:93:61"},{"nodeType":"YulAssignment","src":"2096:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"2106:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2096:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1785:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1796:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1808:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1816:6:61","type":""}],"src":"1740:377:61"},{"body":{"nodeType":"YulBlock","src":"2323:328:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2340:3:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2349:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2357:66:61","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2345:3:61"},"nodeType":"YulFunctionCall","src":"2345:79:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:61"},"nodeType":"YulFunctionCall","src":"2333:92:61"},"nodeType":"YulExpressionStatement","src":"2333:92:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2445:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2450:1:61","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2441:3:61"},"nodeType":"YulFunctionCall","src":"2441:11:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2462:2:61","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"2466:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2458:3:61"},"nodeType":"YulFunctionCall","src":"2458:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"2475:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2454:3:61"},"nodeType":"YulFunctionCall","src":"2454:88:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2434:6:61"},"nodeType":"YulFunctionCall","src":"2434:109:61"},"nodeType":"YulExpressionStatement","src":"2434:109:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2563:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2568:2:61","type":"","value":"21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2559:3:61"},"nodeType":"YulFunctionCall","src":"2559:12:61"},{"name":"value2","nodeType":"YulIdentifier","src":"2573:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2552:6:61"},"nodeType":"YulFunctionCall","src":"2552:28:61"},"nodeType":"YulExpressionStatement","src":"2552:28:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2600:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2605:2:61","type":"","value":"53"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2596:3:61"},"nodeType":"YulFunctionCall","src":"2596:12:61"},{"name":"value3","nodeType":"YulIdentifier","src":"2610:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2589:6:61"},"nodeType":"YulFunctionCall","src":"2589:28:61"},"nodeType":"YulExpressionStatement","src":"2589:28:61"},{"nodeType":"YulAssignment","src":"2626:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2637:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2642:2:61","type":"","value":"85"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2633:3:61"},"nodeType":"YulFunctionCall","src":"2633:12:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2626:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2275:3:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2280:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2288:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2296:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2304:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2315:3:61","type":""}],"src":"2122:529:61"},{"body":{"nodeType":"YulBlock","src":"2977:338:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2994:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2999:66:61","type":"","value":"0xd694000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2987:6:61"},"nodeType":"YulFunctionCall","src":"2987:79:61"},"nodeType":"YulExpressionStatement","src":"2987:79:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3086:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"3091:1:61","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3082:3:61"},"nodeType":"YulFunctionCall","src":"3082:11:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3103:2:61","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"3107:6:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3099:3:61"},"nodeType":"YulFunctionCall","src":"3099:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3116:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3095:3:61"},"nodeType":"YulFunctionCall","src":"3095:88:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3075:6:61"},"nodeType":"YulFunctionCall","src":"3075:109:61"},"nodeType":"YulExpressionStatement","src":"3075:109:61"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3204:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"3209:2:61","type":"","value":"22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3200:3:61"},"nodeType":"YulFunctionCall","src":"3200:12:61"},{"kind":"number","nodeType":"YulLiteral","src":"3214:66:61","type":"","value":"0x0100000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3193:6:61"},"nodeType":"YulFunctionCall","src":"3193:88:61"},"nodeType":"YulExpressionStatement","src":"3193:88:61"},{"nodeType":"YulAssignment","src":"3290:19:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3301:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"3306:2:61","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3297:3:61"},"nodeType":"YulFunctionCall","src":"3297:12:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3290:3:61"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf_t_address_t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2__to_t_string_memory_ptr_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2953:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2958:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2969:3:61","type":""}],"src":"2656:659:61"},{"body":{"nodeType":"YulBlock","src":"3494:167:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3511:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3522:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3504:6:61"},"nodeType":"YulFunctionCall","src":"3504:21:61"},"nodeType":"YulExpressionStatement","src":"3504:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3545:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3556:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3541:3:61"},"nodeType":"YulFunctionCall","src":"3541:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"3561:2:61","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3534:6:61"},"nodeType":"YulFunctionCall","src":"3534:30:61"},"nodeType":"YulExpressionStatement","src":"3534:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3584:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3595:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3580:3:61"},"nodeType":"YulFunctionCall","src":"3580:18:61"},{"hexValue":"4445504c4f594d454e545f4641494c4544","kind":"string","nodeType":"YulLiteral","src":"3600:19:61","type":"","value":"DEPLOYMENT_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3573:6:61"},"nodeType":"YulFunctionCall","src":"3573:47:61"},"nodeType":"YulExpressionStatement","src":"3573:47:61"},{"nodeType":"YulAssignment","src":"3629:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3641:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3652:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3637:3:61"},"nodeType":"YulFunctionCall","src":"3637:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3629:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3471:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3485:4:61","type":""}],"src":"3320:341:61"},{"body":{"nodeType":"YulBlock","src":"3803:289:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3813:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3833:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3827:5:61"},"nodeType":"YulFunctionCall","src":"3827:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3817:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3849:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3858:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3853:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3920:77:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3945:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"3950:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3941:3:61"},"nodeType":"YulFunctionCall","src":"3941:11:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3968:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"3976:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3964:3:61"},"nodeType":"YulFunctionCall","src":"3964:14:61"},{"kind":"number","nodeType":"YulLiteral","src":"3980:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3960:3:61"},"nodeType":"YulFunctionCall","src":"3960:25:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3954:5:61"},"nodeType":"YulFunctionCall","src":"3954:32:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3934:6:61"},"nodeType":"YulFunctionCall","src":"3934:53:61"},"nodeType":"YulExpressionStatement","src":"3934:53:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3879:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3882:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3876:2:61"},"nodeType":"YulFunctionCall","src":"3876:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3890:21:61","statements":[{"nodeType":"YulAssignment","src":"3892:17:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3901:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3904:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3897:3:61"},"nodeType":"YulFunctionCall","src":"3897:12:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3892:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3872:3:61","statements":[]},"src":"3868:129:61"},{"body":{"nodeType":"YulBlock","src":"4023:31:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4036:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"4041:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4032:3:61"},"nodeType":"YulFunctionCall","src":"4032:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"4050:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4025:6:61"},"nodeType":"YulFunctionCall","src":"4025:27:61"},"nodeType":"YulExpressionStatement","src":"4025:27:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4012:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"4015:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4009:2:61"},"nodeType":"YulFunctionCall","src":"4009:13:61"},"nodeType":"YulIf","src":"4006:48:61"},{"nodeType":"YulAssignment","src":"4063:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4074:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"4079:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4070:3:61"},"nodeType":"YulFunctionCall","src":"4070:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4063:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3779:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3784:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3795:3:61","type":""}],"src":"3666:426:61"},{"body":{"nodeType":"YulBlock","src":"4271:171:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4288:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4281:6:61"},"nodeType":"YulFunctionCall","src":"4281:21:61"},"nodeType":"YulExpressionStatement","src":"4281:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:61"},"nodeType":"YulFunctionCall","src":"4318:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"4338:2:61","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:61"},"nodeType":"YulFunctionCall","src":"4311:30:61"},"nodeType":"YulExpressionStatement","src":"4311:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4361:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4372:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4357:3:61"},"nodeType":"YulFunctionCall","src":"4357:18:61"},{"hexValue":"494e495449414c495a4154494f4e5f4641494c4544","kind":"string","nodeType":"YulLiteral","src":"4377:23:61","type":"","value":"INITIALIZATION_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4350:6:61"},"nodeType":"YulFunctionCall","src":"4350:51:61"},"nodeType":"YulExpressionStatement","src":"4350:51:61"},{"nodeType":"YulAssignment","src":"4410:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4422:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4433:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4418:3:61"},"nodeType":"YulFunctionCall","src":"4418:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4410:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4248:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4262:4:61","type":""}],"src":"4097:345:61"}]},"contents":"{\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_address__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_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_bytes32t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(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 _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        value1 := memPtr\n        value2 := calldataload(add(headStart, 64))\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        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value1 := value\n    }\n    function abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, and(value0, 0xff00000000000000000000000000000000000000000000000000000000000000))\n        mstore(add(pos, 1), and(shl(96, value1), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        mstore(add(pos, 21), value2)\n        mstore(add(pos, 53), value3)\n        end := add(pos, 85)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_4fdc04d28c8d22070e5fd0f23f00bae0b21cc4e5091b5fd7a9cad9babd3668cf_t_address_t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2__to_t_string_memory_ptr_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, 0xd694000000000000000000000000000000000000000000000000000000000000)\n        mstore(add(pos, 2), and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        mstore(add(pos, 22), 0x0100000000000000000000000000000000000000000000000000000000000000)\n        end := add(pos, 23)\n    }\n    function abi_encode_tuple_t_stringliteral_06b9a079a75ffa7ba441ae4f39a27e137fcdab3674b7b73e6582f52f1f6543e1__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), \"DEPLOYMENT_FAILED\")\n        tail := add(headStart, 96)\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        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n        }\n        if gt(i, length) { mstore(add(pos, length), 0) }\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_0f225f2de9716551751e4d6d194f155e7a15812a52c33d3c6df80cb5145c2aa4__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), \"INITIALIZATION_FAILED\")\n        tail := add(headStart, 96)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c806321f8a72114610046578063c7aeef0f14610082578063e4e1314014610095575b600080fd5b610059610054366004610518565b6100a8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b610059610090366004610560565b6100b9565b6100596100a3366004610642565b6100ce565b60006100b38261020f565b92915050565b60006100c6848484610341565b949350505050565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091526bffffffffffffffffffffffff19606083901b166021820152603581018390527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f60558201526000908190610198906075015b6040516020818303038152906040528051906020012090565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201526bffffffffffffffffffffffff19606083901b1660228201527f010000000000000000000000000000000000000000000000000000000000000060368201529091506100c69060370161017f565b604080518082018252601081527f67363d3d37363d34f03d5260086018f30000000000000000000000000000000060209182015290517fff00000000000000000000000000000000000000000000000000000000000000918101919091526bffffffffffffffffffffffff193060601b166021820152603581018290527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f605582015260009081906102c39060750161017f565b6040517fd69400000000000000000000000000000000000000000000000000000000000060208201526bffffffffffffffffffffffff19606083901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015290915061033a9060370161017f565b9392505050565b6000806040518060400160405280601081526020017f67363d3d37363d34f03d5260086018f30000000000000000000000000000000081525090506000858251602084016000f5905073ffffffffffffffffffffffffffffffffffffffff811661040c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4445504c4f594d454e545f4641494c454400000000000000000000000000000060448201526064015b60405180910390fd5b6104158661020f565b925060008173ffffffffffffffffffffffffffffffffffffffff16858760405161043f919061068b565b60006040518083038185875af1925050503d806000811461047c576040519150601f19603f3d011682016040523d82523d6000602084013e610481565b606091505b505090508080156104a8575073ffffffffffffffffffffffffffffffffffffffff84163b15155b61050e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606401610403565b5050509392505050565b60006020828403121561052a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561057557600080fd5b83359250602084013567ffffffffffffffff8082111561059457600080fd5b818601915086601f8301126105a857600080fd5b8135818111156105ba576105ba610531565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561060057610600610531565b8160405282815289602084870101111561061957600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b6000806040838503121561065557600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461068057600080fd5b809150509250929050565b6000825160005b818110156106ac5760208186018101518583015201610692565b818111156106bb576000828501525b50919091019291505056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x21F8A721 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xC7AEEF0F EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xE4E13140 EQ PUSH2 0x95 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x54 CALLDATASIZE PUSH1 0x4 PUSH2 0x518 JUMP JUMPDEST PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x560 JUMP JUMPDEST PUSH2 0xB9 JUMP JUMPDEST PUSH2 0x59 PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x642 JUMP JUMPDEST PUSH2 0xCE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB3 DUP3 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC6 DUP5 DUP5 DUP5 PUSH2 0x341 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x21 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x21C35DBE1B344A2488CF3321D6CE542F8E9F305544FF09E4993A62319A497C1F PUSH1 0x55 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x198 SWAP1 PUSH1 0x75 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD694000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x22 DUP3 ADD MSTORE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 PUSH1 0x36 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0xC6 SWAP1 PUSH1 0x37 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x21 DUP3 ADD MSTORE PUSH1 0x35 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x21C35DBE1B344A2488CF3321D6CE542F8E9F305544FF09E4993A62319A497C1F PUSH1 0x55 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x2C3 SWAP1 PUSH1 0x75 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD694000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP4 SWAP1 SHL AND PUSH1 0x22 DUP3 ADD MSTORE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 PUSH1 0x36 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x33A SWAP1 PUSH1 0x37 ADD PUSH2 0x17F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x67363D3D37363D34F03D5260086018F300000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP6 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x40C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4445504C4F594D454E545F4641494C4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x415 DUP7 PUSH2 0x20F JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x68B 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 0x47C 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 0x481 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x4A8 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO ISZERO JUMPDEST PUSH2 0x50E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x494E495449414C495A4154494F4E5F4641494C45440000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x403 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52A 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 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x5BA JUMPI PUSH2 0x5BA PUSH2 0x531 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 0x600 JUMPI PUSH2 0x600 PUSH2 0x531 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x619 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 SWAP7 POP POP POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6AC JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x692 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x6BB JUMPI PUSH1 0x0 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"454:1589:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:117;;;;;;:::i;:::-;;:::i;:::-;;;375:42:61;363:55;;;345:74;;333:2;318:18;1019:117:36;;;;;;;762:207;;;;;;:::i;:::-;;:::i;1142:899::-;;;;;;:::i;:::-;;:::i;1019:117::-;1077:7;1103:26;1123:5;1103:19;:26::i;:::-;1096:33;1019:117;-1:-1:-1;;1019:117:36:o;762:207::-;883:16;918:44;933:5;940:13;955:6;918:14;:44::i;:::-;911:51;762:207;-1:-1:-1;;;;762:207:36:o;1142:899::-;696:14;;;;;;;;;;;;;;;;;1309:261;;1370:12;1309:261;;;2333:92:61;;;;-1:-1:-1;;2462:2:61;2458:15;;;2454:88;2441:11;;;2434:109;2559:12;;;2552:28;;;686:25:36;2596:12:61;;;2589:28;-1:-1:-1;;;;1286:312:36;;2633:12:61;;1309:261:36;;;;;;;;;;;;;1286:294;;;;;;398:10:59;280:138;1286:312:36;1655:347;;2999:66:61;1655:347:36;;;2987:79:61;-1:-1:-1;;3103:2:61;3099:15;;;3095:88;3082:11;;;3075:109;3214:66;3200:12;;;3193:88;1270:328:36;;-1:-1:-1;1628:406:36;;3297:12:61;;1655:347:36;2656:659:61;3325:851:60;2501:14;;;;;;;;;;;;;;;;;3441:264;;3502:12;3441:264;;;2333:92:61;;;;-1:-1:-1;;3568:4:60;2462:2:61;2458:15;2454:88;2441:11;;;2434:109;2559:12;;;2552:28;;;2491:25:60;2596:12:61;;;2589:28;-1:-1:-1;;;;3418:315:60;;2633:12:61;;3441:264:60;2122:529:61;3418:315:60;3790:347;;2999:66:61;3790:347:60;;;2987:79:61;-1:-1:-1;;3103:2:61;3099:15;;;3095:88;3082:11;;;3075:109;3214:66;3200:12;;;3193:88;3402:331:60;;-1:-1:-1;3763:406:60;;3297:12:61;;3790:347:60;2656:659:61;3763:406:60;3744:425;3325:851;-1:-1:-1;;;3325:851:60:o;2523:796::-;2643:16;2671:31;2705:14;;;;;;;;;;;;;;;;;2671:48;;2730:13;3053:4;3032:18;3026:25;3021:2;3001:18;2997:27;2994:1;2986:72;2977:81;-1:-1:-1;3085:19:60;;;3077:49;;;;;;;3522:2:61;3077:49:60;;;3504:21:61;3561:2;3541:18;;;3534:30;3600:19;3580:18;;;3573:47;3637:18;;3077:49:60;;;;;;;;;3148:17;3160:4;3148:11;:17::i;:::-;3137:28;;3176:12;3194:5;:10;;3212:5;3219:12;3194:38;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3175:57;;;3250:7;:36;;;;-1:-1:-1;3261:20:60;;;;:25;;3250:36;3242:70;;;;;;;4299:2:61;3242:70:60;;;4281:21:61;4338:2;4318:18;;;4311:30;4377:23;4357:18;;;4350:51;4418:18;;3242:70:60;4097:345:61;3242:70:60;2661:658;;;2523:796;;;;;:::o;14:180:61:-;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:61;;14:180;-1:-1:-1;14:180:61:o;430:184::-;482:77;479:1;472:88;579:4;576:1;569:15;603:4;600:1;593:15;619:1116;705:6;713;721;774:2;762:9;753:7;749:23;745:32;742:52;;;790:1;787;780:12;742:52;826:9;813:23;803:33;;887:2;876:9;872:18;859:32;910:18;951:2;943:6;940:14;937:34;;;967:1;964;957:12;937:34;1005:6;994:9;990:22;980:32;;1050:7;1043:4;1039:2;1035:13;1031:27;1021:55;;1072:1;1069;1062:12;1021:55;1108:2;1095:16;1130:2;1126;1123:10;1120:36;;;1136:18;;:::i;:::-;1270:2;1264:9;1332:4;1324:13;;1175:66;1320:22;;;1344:2;1316:31;1312:40;1300:53;;;1368:18;;;1388:22;;;1365:46;1362:72;;;1414:18;;:::i;:::-;1454:10;1450:2;1443:22;1489:2;1481:6;1474:18;1529:7;1524:2;1519;1515;1511:11;1507:20;1504:33;1501:53;;;1550:1;1547;1540:12;1501:53;1606:2;1601;1597;1593:11;1588:2;1580:6;1576:15;1563:46;1651:1;1646:2;1641;1633:6;1629:15;1625:24;1618:35;1672:6;1662:16;;;;;;;1725:2;1714:9;1710:18;1697:32;1687:42;;619:1116;;;;;:::o;1740:377::-;1808:6;1816;1869:2;1857:9;1848:7;1844:23;1840:32;1837:52;;;1885:1;1882;1875:12;1837:52;1921:9;1908:23;1898:33;;1981:2;1970:9;1966:18;1953:32;2025:42;2018:5;2014:54;2007:5;2004:65;1994:93;;2083:1;2080;2073:12;1994:93;2106:5;2096:15;;;1740:377;;;;;:::o;3666:426::-;3795:3;3833:6;3827:13;3858:1;3868:129;3882:6;3879:1;3876:13;3868:129;;;3980:4;3964:14;;;3960:25;;3954:32;3941:11;;;3934:53;3897:12;3868:129;;;4015:6;4012:1;4009:13;4006:48;;;4050:1;4041:6;4036:3;4032:16;4025:27;4006:48;-1:-1:-1;4070:16:61;;;;;3666:426;-1:-1:-1;;3666:426:61:o"},"methodIdentifiers":{"deploy(bytes32,bytes,uint256)":"c7aeef0f","getAddress(bytes32)":"21f8a721","getAddressFromDeployer(bytes32,address)":"e4e13140"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_creationCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployed\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"}],\"name\":\"getAddressFromDeployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"DefaultCreate3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Default implementation of the ICreate3 interface. The default Create3 formula is used on Ethereum and networks that are EVM-equivalent, or close to it.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DefaultCreate3.sol\":\"DefaultCreate3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/DefaultCreate3.sol\":{\"keccak256\":\"0xd6398314593ee3703183c385111ff0028a86ddac66bac43989f539ca13f82ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c03161588b26750464464f73d349f19a5af2b306e9a101b1a12c70cb732417\",\"dweb:/ipfs/QmbMVQmabwHEEgKvBfMcfYeWXaVgpZudhcv1TP4ic4CttX\"]},\"contracts/interfaces/ICreate3.sol\":{\"keccak256\":\"0xeeadaa461d5c3f309ed45f7060a21dc47e26e35ed94d94d27f574ba995b14f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7ade72319651066c7899e1b76723e4652ea1898ffd047d6af257223ea021ae9\",\"dweb:/ipfs/Qmew5BoRkiGhfgeRcSd3zmEn2J43sKt259kaq2ZcBhKhCX\"]},\"solmate/src/utils/Bytes32AddressLib.sol\":{\"keccak256\":\"0xe709c9f2c6fb8bfe1158fa31967c0a2109844c52079fe4e327baec82fb87acb6\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://9633ab7c471e653dfb37c78b6475db47924c9ee731118545b5bc28aad97f2434\",\"dweb:/ipfs/Qmbt9gLb3hrs21nQxwSiG1ciE56Y73LLt1iPDfnmkcz27E\"]},\"solmate/src/utils/CREATE3.sol\":{\"keccak256\":\"0x1d4ea6d2353ed117d7704ddf7488fcd39edb2d575351f6c64efd313170d74367\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://ea79e1a2a5950275ab628ecf628d0a60146435425f7841ad933c2a1f7e802022\",\"dweb:/ipfs/QmSy8eMrDY1VzCWyrjPbJcZCPQ1b4Lhtccdp9fupZrt6Yd\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/DefaultGasPriceCalculator.sol":{"DefaultGasPriceCalculator":{"abi":[{"inputs":[],"name":"getGasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604d80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063455259cb14602d575b600080fd5b3a60405190815260200160405180910390f3fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4D 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 0x455259CB EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST GASPRICE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"348:211:37:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getGasPrice_8820":{"entryPoint":null,"id":8820,"parameterSlots":0,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:193:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:61","statements":[{"nodeType":"YulAssignment","src":"125:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:61"},"nodeType":"YulFunctionCall","src":"133:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:61"},"nodeType":"YulFunctionCall","src":"160:25:61"},"nodeType":"YulExpressionStatement","src":"160:25:61"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:61","type":""}],"src":"14:177:61"}]},"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}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060285760003560e01c8063455259cb14602d575b600080fd5b3a60405190815260200160405180910390f3fea164736f6c634300080f000a","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 0x455259CB EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST GASPRICE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"348:211:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;467:90;539:11;467:90;;160:25:61;;;148:2;133:18;467:90:37;;;;;;"},"methodIdentifiers":{"getGasPrice()":"455259cb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getGasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getGasPrice()\":{\"returns\":{\"_0\":\"The gas price of the current transaction.\"}}},\"title\":\"DefaultGasPriceCalculator\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getGasPrice()\":{\"notice\":\"Returns the gas price of the current transaction.\"}},\"notice\":\"Default implementation of the IGasPriceCalculator interface. This is used on Ethereum and networks that have the same semantics for `tx.gasprice`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DefaultGasPriceCalculator.sol\":\"DefaultGasPriceCalculator\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/DefaultGasPriceCalculator.sol\":{\"keccak256\":\"0x04396c995f875da7c6fe62d31f1966d9d3cefe831cc80b41c98196730a7240d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d75187cbb33b1af063dca77783263f53d9659fbc2d9efbc4e9f3c80be068c852\",\"dweb:/ipfs/Qmcye1KZoQaQsGwo9byUjVefvzhZ8PSVrom5KKXXf9UDh8\"]},\"contracts/interfaces/IGasPriceCalculator.sol\":{\"keccak256\":\"0x04aafb0456de4888329e7e8307e059efa57216d66c4559386260f1011cf2e246\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1e45bd8f9cca7e035c000afdf44985b5b37a80c6918a9b3d31104fe5fbcf901\",\"dweb:/ipfs/QmXCBMD1ZzgrxmLCxNhVMdJaizHtJvh34Fac5WEVFjf4DQ\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/ManagedService.sol":{"ManagedService":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CallerIsNotProtocolPaymentRecipient","type":"error"},{"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":"ExecutedCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ProtocolPaymentClaimed","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":"CALLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimProtocolPayment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"executeCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","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"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_8876":{"entryPoint":null,"id":8876,"parameterSlots":1,"returnSlots":0},"@_grantRole_2079":{"entryPoint":64,"id":2079,"parameterSlots":2,"returnSlots":0},"@_msgSender_2833":{"entryPoint":null,"id":2833,"parameterSlots":0,"returnSlots":1},"@hasRole_1875":{"entryPoint":null,"id":1875,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":223,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:306:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"}]},"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":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161106f38038061106f83398101604081905261002f916100df565b61003a600082610040565b5061010f565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100db576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561009a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000602082840312156100f157600080fd5b81516001600160a01b038116811461010857600080fd5b9392505050565b610f518061011e6000396000f3fe6080604052600436106100b55760003560e01c8063774237fc11610069578063a217fddf1161004e578063a217fddf1461021b578063b74e9e3b14610230578063d547741f1461025057600080fd5b8063774237fc1461019657806391d14854146101ca57600080fd5b80632f2ff15d1161009a5780632f2ff15d1461013457806336568abe1461015657806354132d781461017657600080fd5b806301ffc9a7146100c1578063248a9ca3146100f657600080fd5b366100bc57005b600080fd5b3480156100cd57600080fd5b506100e16100dc366004610ba6565b610270565b60405190151581526020015b60405180910390f35b34801561010257600080fd5b50610126610111366004610be8565b60009081526020819052604090206001015490565b6040519081526020016100ed565b34801561014057600080fd5b5061015461014f366004610c2a565b610309565b005b34801561016257600080fd5b50610154610171366004610c2a565b610333565b610189610184366004610c85565b6103d1565b6040516100ed9190610dac565b3480156101a257600080fd5b506101267f843c3a00fa95510a35f425371231fd3fe4642e719cb4595160763d6d02594b5081565b3480156101d657600080fd5b506100e16101e5366004610c2a565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561022757600080fd5b50610126600081565b34801561023c57600080fd5b5061015461024b366004610be8565b610511565b34801561025c57600080fd5b5061015461026b366004610c2a565b6106fe565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061030357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461032481610723565b61032e8383610730565b505050565b73ffffffffffffffffffffffffffffffffffffffff811633146103c35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6103cd8282610820565b5050565b60607f843c3a00fa95510a35f425371231fd3fe4642e719cb4595160763d6d02594b506103fd81610723565b60405183815273ffffffffffffffffffffffffffffffffffffffff86169033907fc2822ad937e2e42263be82e6c6bd0969b5d174e5a131d5c6372d47cb54cbbce79060200160405180910390a36000808673ffffffffffffffffffffffffffffffffffffffff1685876040516104739190610dbf565b60006040518083038185875af1925050503d80600081146104b0576040519150601f19603f3d011682016040523d82523d6000602084013e6104b5565b606091505b5091509150816105075760405162461bcd60e51b815260206004820152601f60248201527f5065726d697373696f6e656443616c6c65723a2063616c6c206661696c65640060448201526064016103ba565b9695505050505050565b3360009081527f96a39c6873e8c91df4ff4e5fee2914eac96e97cdea7396527c6f3edbad83a904602052604090205460ff16610579576040517fbf7ee2a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b478111156105ef5760405162461bcd60e51b815260206004820152603f60248201527f4d616e61676564536572766963653a20496e73756666696369656e742066756e60448201527f647320746f2077697468647261772070726f746f636f6c207061796d656e740060648201526084016103ba565b60405181815233907f95c4271d7d135112b6c5b35869852607dbafbfab924b79a54d15a440394461079060200160405180910390a260408051600080825260208201909252339083906040516106459190610dbf565b60006040518083038185875af1925050503d8060008114610682576040519150601f19603f3d011682016040523d82523d6000602084013e610687565b606091505b50509050806103cd5760405162461bcd60e51b815260206004820152603360248201527f4d616e61676564536572766963653a204661696c656420746f2077697468647260448201527f61772070726f746f636f6c207061796d656e740000000000000000000000000060648201526084016103ba565b60008281526020819052604090206001015461071981610723565b61032e8383610820565b61072d81336108d7565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166103cd5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556107c23390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156103cd5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166103cd5761091581610957565b610920836020610976565b604051602001610931929190610ddb565b60408051601f198184030181529082905262461bcd60e51b82526103ba91600401610dac565b606061030373ffffffffffffffffffffffffffffffffffffffff831660145b60606000610985836002610e8b565b610990906002610ec8565b67ffffffffffffffff8111156109a8576109a8610c56565b6040519080825280601f01601f1916602001820160405280156109d2576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610a0957610a09610ee0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610a6c57610a6c610ee0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610aa8846002610e8b565b610ab3906001610ec8565b90505b6001811115610b50577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610af457610af4610ee0565b1a60f81b828281518110610b0a57610b0a610ee0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610b4981610f0f565b9050610ab6565b508315610b9f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103ba565b9392505050565b600060208284031215610bb857600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b9f57600080fd5b600060208284031215610bfa57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c2557600080fd5b919050565b60008060408385031215610c3d57600080fd5b82359150610c4d60208401610c01565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610c9a57600080fd5b610ca384610c01565b9250602084013567ffffffffffffffff80821115610cc057600080fd5b818601915086601f830112610cd457600080fd5b813581811115610ce657610ce6610c56565b604051601f8201601f19908116603f01168101908382118183101715610d0e57610d0e610c56565b81604052828152896020848701011115610d2757600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b60005b83811015610d6b578181015183820152602001610d53565b83811115610d7a576000848401525b50505050565b60008151808452610d98816020860160208601610d50565b601f01601f19169290920160200192915050565b602081526000610b9f6020830184610d80565b60008251610dd1818460208701610d50565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610e13816017850160208801610d50565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351610e50816028840160208801610d50565b01602801949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610ec357610ec3610e5c565b500290565b60008219821115610edb57610edb610e5c565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081610f1e57610f1e610e5c565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x106F CODESIZE SUB DUP1 PUSH2 0x106F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xDF JUMP JUMPDEST PUSH2 0x3A PUSH1 0x0 DUP3 PUSH2 0x40 JUMP JUMPDEST POP PUSH2 0x10F 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 PUSH2 0xDB 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 PUSH2 0x9A 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 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF51 DUP1 PUSH2 0x11E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x774237FC GT PUSH2 0x69 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x4E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0xB74E9E3B EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x774237FC EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x9A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x54132D78 EQ PUSH2 0x176 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xBC JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0xBA6 JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH2 0x111 CALLDATASIZE PUSH1 0x4 PUSH2 0xBE8 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 CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A JUMP JUMPDEST PUSH2 0x333 JUMP JUMPDEST PUSH2 0x189 PUSH2 0x184 CALLDATASIZE PUSH1 0x4 PUSH2 0xC85 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xDAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH32 0x843C3A00FA95510A35F425371231FD3FE4642E719CB4595160763D6D02594B50 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE1 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A 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 CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0xBE8 JUMP JUMPDEST PUSH2 0x511 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A JUMP JUMPDEST PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x303 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x324 DUP2 PUSH2 0x723 JUMP JUMPDEST PUSH2 0x32E DUP4 DUP4 PUSH2 0x730 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND CALLER EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL 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 0x3CD DUP3 DUP3 PUSH2 0x820 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH32 0x843C3A00FA95510A35F425371231FD3FE4642E719CB4595160763D6D02594B50 PUSH2 0x3FD DUP2 PUSH2 0x723 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP1 CALLER SWAP1 PUSH32 0xC2822AD937E2E42263BE82E6C6BD0969B5D174E5A131D5C6372D47CB54CBBCE7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x473 SWAP2 SWAP1 PUSH2 0xDBF 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 0x4B0 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 0x4B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x507 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 0x5065726D697373696F6E656443616C6C65723A2063616C6C206661696C656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3BA JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x96A39C6873E8C91DF4FF4E5FEE2914EAC96E97CDEA7396527C6F3EDBAD83A904 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x579 JUMPI PUSH1 0x40 MLOAD PUSH32 0xBF7EE2A300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SELFBALANCE DUP2 GT ISZERO PUSH2 0x5EF 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 0x4D616E61676564536572766963653A20496E73756666696369656E742066756E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647320746F2077697468647261772070726F746F636F6C207061796D656E7400 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE CALLER SWAP1 PUSH32 0x95C4271D7D135112B6C5B35869852607DBAFBFAB924B79A54D15A44039446107 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE CALLER SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x645 SWAP2 SWAP1 PUSH2 0xDBF 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 0x682 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 0x687 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3CD 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 0x4D616E61676564536572766963653A204661696C656420746F20776974686472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61772070726F746F636F6C207061796D656E7400000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x719 DUP2 PUSH2 0x723 JUMP JUMPDEST PUSH2 0x32E DUP4 DUP4 PUSH2 0x820 JUMP JUMPDEST PUSH2 0x72D DUP2 CALLER PUSH2 0x8D7 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 0x3CD 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 0x7C2 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 0x3CD 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 0x3CD JUMPI PUSH2 0x915 DUP2 PUSH2 0x957 JUMP JUMPDEST PUSH2 0x920 DUP4 PUSH1 0x20 PUSH2 0x976 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x931 SWAP3 SWAP2 SWAP1 PUSH2 0xDDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x3BA SWAP2 PUSH1 0x4 ADD PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x60 PUSH2 0x303 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x985 DUP4 PUSH1 0x2 PUSH2 0xE8B JUMP JUMPDEST PUSH2 0x990 SWAP1 PUSH1 0x2 PUSH2 0xEC8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9A8 JUMPI PUSH2 0x9A8 PUSH2 0xC56 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 0x9D2 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 0xA09 JUMPI PUSH2 0xA09 PUSH2 0xEE0 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 0xA6C JUMPI PUSH2 0xA6C PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0xAA8 DUP5 PUSH1 0x2 PUSH2 0xE8B JUMP JUMPDEST PUSH2 0xAB3 SWAP1 PUSH1 0x1 PUSH2 0xEC8 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xB50 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0xAF4 JUMPI PUSH2 0xAF4 PUSH2 0xEE0 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB0A JUMPI PUSH2 0xB0A PUSH2 0xEE0 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 0xB49 DUP2 PUSH2 0xF0F JUMP JUMPDEST SWAP1 POP PUSH2 0xAB6 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xB9F 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 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0xB9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xC4D PUSH1 0x20 DUP5 ADD PUSH2 0xC01 JUMP JUMPDEST SWAP1 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 0xC9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCA3 DUP5 PUSH2 0xC01 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCE6 JUMPI PUSH2 0xCE6 PUSH2 0xC56 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 0xD0E JUMPI PUSH2 0xD0E PUSH2 0xC56 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xD27 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 SWAP7 POP POP POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD6B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD53 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD98 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD50 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 0xB9F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD80 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xDD1 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xD50 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xE13 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD50 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xE50 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD50 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xEC3 JUMPI PUSH2 0xEC3 PUSH2 0xE5C JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xEDB JUMPI PUSH2 0xEDB PUSH2 0xE5C JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xF1E JUMPI PUSH2 0xF1E PUSH2 0xE5C JUMP JUMPDEST POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"434:2624:39:-:0;;;1429:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1467:30;1486:1;1490:6;1467:10;:30::i;:::-;1429:75;434:2624;;7587:233:11;3107:4;3130:12;;;;;;;;;;;-1:-1:-1;;;;;3130:29:11;;;;;;;;;;;;7665:149;;7708:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7708:29:11;;;;;;;;;:36;;-1:-1:-1;;7708:36:11;7740:4;7708:36;;;7790:12;719:10:17;;640:96;7790:12:11;-1:-1:-1;;;;;7763:40:11;7781:7;-1:-1:-1;;;;;7763:40:11;7775:4;7763:40;;;;;;;;;;7665:149;7587:233;;:::o;14:290:61:-;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;:::-;434:2624:39;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CALLER_ROLE_8837":{"entryPoint":null,"id":8837,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_1823":{"entryPoint":null,"id":1823,"parameterSlots":0,"returnSlots":0},"@_8983":{"entryPoint":null,"id":8983,"parameterSlots":0,"returnSlots":0},"@_checkRole_1888":{"entryPoint":1827,"id":1888,"parameterSlots":1,"returnSlots":0},"@_checkRole_1927":{"entryPoint":2263,"id":1927,"parameterSlots":2,"returnSlots":0},"@_grantRole_2079":{"entryPoint":1840,"id":2079,"parameterSlots":2,"returnSlots":0},"@_msgSender_2833":{"entryPoint":null,"id":2833,"parameterSlots":0,"returnSlots":1},"@_revokeRole_2110":{"entryPoint":2080,"id":2110,"parameterSlots":2,"returnSlots":0},"@claimProtocolPayment_8978":{"entryPoint":1297,"id":8978,"parameterSlots":1,"returnSlots":0},"@executeCall_8917":{"entryPoint":977,"id":8917,"parameterSlots":3,"returnSlots":1},"@getRoleAdmin_1942":{"entryPoint":null,"id":1942,"parameterSlots":1,"returnSlots":1},"@grantRole_1962":{"entryPoint":777,"id":1962,"parameterSlots":2,"returnSlots":0},"@hasRole_1875":{"entryPoint":null,"id":1875,"parameterSlots":2,"returnSlots":1},"@renounceRole_2005":{"entryPoint":819,"id":2005,"parameterSlots":2,"returnSlots":0},"@revokeRole_1982":{"entryPoint":1790,"id":1982,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1856":{"entryPoint":624,"id":1856,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3994":{"entryPoint":null,"id":3994,"parameterSlots":1,"returnSlots":1},"@toHexString_3352":{"entryPoint":2422,"id":3352,"parameterSlots":2,"returnSlots":1},"@toHexString_3372":{"entryPoint":2391,"id":3372,"parameterSlots":1,"returnSlots":1},"abi_decode_address":{"entryPoint":3073,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_uint256":{"entryPoint":3205,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32":{"entryPoint":3048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":3114,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":2982,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":3456,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3519,"id":null,"parameterSlots":2,"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":3547,"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_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3500,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_01ef1fa443964e09936b26e0536063ee06c2ed866b4517b5e8e512b5dd110dba__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"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_07ccc52a2421159a81cb1efd13f66c0824b69ef4653e7966f225cd9e92086f45__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d16a395c54de90dc2892c7f651ed507b1ada33e4854aeca7ae6d40f1efb14a76__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},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3784,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3723,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":3408,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":3855,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3676,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3808,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3158,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8084:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"83:263:61","statements":[{"body":{"nodeType":"YulBlock","src":"129:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"138:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"141:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"131:6:61"},"nodeType":"YulFunctionCall","src":"131:12:61"},"nodeType":"YulExpressionStatement","src":"131:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"104:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"113:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:61"},"nodeType":"YulFunctionCall","src":"100:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"125:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"96:3:61"},"nodeType":"YulFunctionCall","src":"96:32:61"},"nodeType":"YulIf","src":"93:52:61"},{"nodeType":"YulVariableDeclaration","src":"154:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"180:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"167:12:61"},"nodeType":"YulFunctionCall","src":"167:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"158:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"300:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:61"},"nodeType":"YulFunctionCall","src":"302:12:61"},"nodeType":"YulExpressionStatement","src":"302:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"212:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"230:66:61","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"219:3:61"},"nodeType":"YulFunctionCall","src":"219:78:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"209:2:61"},"nodeType":"YulFunctionCall","src":"209:89:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"202:6:61"},"nodeType":"YulFunctionCall","src":"202:97:61"},"nodeType":"YulIf","src":"199:117:61"},{"nodeType":"YulAssignment","src":"325:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"335:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"325:6:61"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"49:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"60:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"72:6:61","type":""}],"src":"14:332:61"},{"body":{"nodeType":"YulBlock","src":"446:92:61","statements":[{"nodeType":"YulAssignment","src":"456:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:61"},"nodeType":"YulFunctionCall","src":"464:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"456:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"498:9:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"523:6:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"516:6:61"},"nodeType":"YulFunctionCall","src":"516:14:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"509:6:61"},"nodeType":"YulFunctionCall","src":"509:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"491:6:61"},"nodeType":"YulFunctionCall","src":"491:41:61"},"nodeType":"YulExpressionStatement","src":"491:41:61"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"415:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"426:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"437:4:61","type":""}],"src":"351:187:61"},{"body":{"nodeType":"YulBlock","src":"613:110:61","statements":[{"body":{"nodeType":"YulBlock","src":"659:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"668:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"671:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"661:6:61"},"nodeType":"YulFunctionCall","src":"661:12:61"},"nodeType":"YulExpressionStatement","src":"661:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"634:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"643:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"630:3:61"},"nodeType":"YulFunctionCall","src":"630:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"655:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"626:3:61"},"nodeType":"YulFunctionCall","src":"626:32:61"},"nodeType":"YulIf","src":"623:52:61"},{"nodeType":"YulAssignment","src":"684:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"707:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"694:12:61"},"nodeType":"YulFunctionCall","src":"694:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"684:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"579:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"590:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"602:6:61","type":""}],"src":"543:180:61"},{"body":{"nodeType":"YulBlock","src":"829:76:61","statements":[{"nodeType":"YulAssignment","src":"839:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"862:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"847:3:61"},"nodeType":"YulFunctionCall","src":"847:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"839:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"881:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"892:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"874:6:61"},"nodeType":"YulFunctionCall","src":"874:25:61"},"nodeType":"YulExpressionStatement","src":"874:25:61"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"798:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"809:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"820:4:61","type":""}],"src":"728:177:61"},{"body":{"nodeType":"YulBlock","src":"959:147:61","statements":[{"nodeType":"YulAssignment","src":"969:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"991:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"978:12:61"},"nodeType":"YulFunctionCall","src":"978:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"969:5:61"}]},{"body":{"nodeType":"YulBlock","src":"1084:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1093:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1096:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1086:6:61"},"nodeType":"YulFunctionCall","src":"1086:12:61"},"nodeType":"YulExpressionStatement","src":"1086:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1020:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1031:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"1038:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1027:3:61"},"nodeType":"YulFunctionCall","src":"1027:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1017:2:61"},"nodeType":"YulFunctionCall","src":"1017:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1010:6:61"},"nodeType":"YulFunctionCall","src":"1010:73:61"},"nodeType":"YulIf","src":"1007:93:61"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"938:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"949:5:61","type":""}],"src":"910:196:61"},{"body":{"nodeType":"YulBlock","src":"1198:167:61","statements":[{"body":{"nodeType":"YulBlock","src":"1244:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1253:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1256:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1246:6:61"},"nodeType":"YulFunctionCall","src":"1246:12:61"},"nodeType":"YulExpressionStatement","src":"1246:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1219:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1228:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1215:3:61"},"nodeType":"YulFunctionCall","src":"1215:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1240:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1211:3:61"},"nodeType":"YulFunctionCall","src":"1211:32:61"},"nodeType":"YulIf","src":"1208:52:61"},{"nodeType":"YulAssignment","src":"1269:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1292:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1279:12:61"},"nodeType":"YulFunctionCall","src":"1279:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1269:6:61"}]},{"nodeType":"YulAssignment","src":"1311:48:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1344:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1355:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1340:3:61"},"nodeType":"YulFunctionCall","src":"1340:18:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1321:18:61"},"nodeType":"YulFunctionCall","src":"1321:38:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1311:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1156:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1167:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1179:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1187:6:61","type":""}],"src":"1111:254:61"},{"body":{"nodeType":"YulBlock","src":"1402:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1419:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1422:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1412:6:61"},"nodeType":"YulFunctionCall","src":"1412:88:61"},"nodeType":"YulExpressionStatement","src":"1412:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1516:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1519:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1509:6:61"},"nodeType":"YulFunctionCall","src":"1509:15:61"},"nodeType":"YulExpressionStatement","src":"1509:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1540:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1543:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1533:6:61"},"nodeType":"YulFunctionCall","src":"1533:15:61"},"nodeType":"YulExpressionStatement","src":"1533:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1370:184:61"},{"body":{"nodeType":"YulBlock","src":"1672:1009:61","statements":[{"body":{"nodeType":"YulBlock","src":"1718:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1727:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1730:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1720:6:61"},"nodeType":"YulFunctionCall","src":"1720:12:61"},"nodeType":"YulExpressionStatement","src":"1720:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1693:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1702:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1689:3:61"},"nodeType":"YulFunctionCall","src":"1689:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1714:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1685:3:61"},"nodeType":"YulFunctionCall","src":"1685:32:61"},"nodeType":"YulIf","src":"1682:52:61"},{"nodeType":"YulAssignment","src":"1743:39:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1772:9:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1753:18:61"},"nodeType":"YulFunctionCall","src":"1753:29:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1743:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1791:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1822:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1833:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1818:3:61"},"nodeType":"YulFunctionCall","src":"1818:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1805:12:61"},"nodeType":"YulFunctionCall","src":"1805:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1795:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1846:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1856:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1850:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1901:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1910:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1913:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1903:6:61"},"nodeType":"YulFunctionCall","src":"1903:12:61"},"nodeType":"YulExpressionStatement","src":"1903:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1889:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1897:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1886:2:61"},"nodeType":"YulFunctionCall","src":"1886:14:61"},"nodeType":"YulIf","src":"1883:34:61"},{"nodeType":"YulVariableDeclaration","src":"1926:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1940:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"1951:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1936:3:61"},"nodeType":"YulFunctionCall","src":"1936:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1930:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2006:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2015:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2018:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2008:6:61"},"nodeType":"YulFunctionCall","src":"2008:12:61"},"nodeType":"YulExpressionStatement","src":"2008:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1985:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1989:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:61"},"nodeType":"YulFunctionCall","src":"1981:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1996:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1977:3:61"},"nodeType":"YulFunctionCall","src":"1977:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1970:6:61"},"nodeType":"YulFunctionCall","src":"1970:35:61"},"nodeType":"YulIf","src":"1967:55:61"},{"nodeType":"YulVariableDeclaration","src":"2031:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2054:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2041:12:61"},"nodeType":"YulFunctionCall","src":"2041:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2035:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2080:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2082:16:61"},"nodeType":"YulFunctionCall","src":"2082:18:61"},"nodeType":"YulExpressionStatement","src":"2082:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2072:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2076:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2069:2:61"},"nodeType":"YulFunctionCall","src":"2069:10:61"},"nodeType":"YulIf","src":"2066:36:61"},{"nodeType":"YulVariableDeclaration","src":"2111:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2121:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2115:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2196:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2216:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2210:5:61"},"nodeType":"YulFunctionCall","src":"2210:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2200:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2228:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2250:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2274:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2278:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2270:3:61"},"nodeType":"YulFunctionCall","src":"2270:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2285:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2266:3:61"},"nodeType":"YulFunctionCall","src":"2266:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"2290:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2262:3:61"},"nodeType":"YulFunctionCall","src":"2262:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2295:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2258:3:61"},"nodeType":"YulFunctionCall","src":"2258:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2246:3:61"},"nodeType":"YulFunctionCall","src":"2246:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2232:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2358:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2360:16:61"},"nodeType":"YulFunctionCall","src":"2360:18:61"},"nodeType":"YulExpressionStatement","src":"2360:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2317:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2329:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2314:2:61"},"nodeType":"YulFunctionCall","src":"2314:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2337:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2349:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2334:2:61"},"nodeType":"YulFunctionCall","src":"2334:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2311:2:61"},"nodeType":"YulFunctionCall","src":"2311:46:61"},"nodeType":"YulIf","src":"2308:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2396:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2400:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2389:6:61"},"nodeType":"YulFunctionCall","src":"2389:22:61"},"nodeType":"YulExpressionStatement","src":"2389:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2427:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2435:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2420:6:61"},"nodeType":"YulFunctionCall","src":"2420:18:61"},"nodeType":"YulExpressionStatement","src":"2420:18:61"},{"body":{"nodeType":"YulBlock","src":"2484:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2493:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2496:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2486:6:61"},"nodeType":"YulFunctionCall","src":"2486:12:61"},"nodeType":"YulExpressionStatement","src":"2486:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2461:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2465:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2457:3:61"},"nodeType":"YulFunctionCall","src":"2457:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"2470:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2453:3:61"},"nodeType":"YulFunctionCall","src":"2453:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2475:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2450:2:61"},"nodeType":"YulFunctionCall","src":"2450:33:61"},"nodeType":"YulIf","src":"2447:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2526:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2534:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2522:3:61"},"nodeType":"YulFunctionCall","src":"2522:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2543:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2547:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2539:3:61"},"nodeType":"YulFunctionCall","src":"2539:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2552:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2509:12:61"},"nodeType":"YulFunctionCall","src":"2509:46:61"},"nodeType":"YulExpressionStatement","src":"2509:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2579:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2587:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2575:3:61"},"nodeType":"YulFunctionCall","src":"2575:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"2592:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2571:3:61"},"nodeType":"YulFunctionCall","src":"2571:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"2597:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2564:6:61"},"nodeType":"YulFunctionCall","src":"2564:35:61"},"nodeType":"YulExpressionStatement","src":"2564:35:61"},{"nodeType":"YulAssignment","src":"2608:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2618:6:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2608:6:61"}]},{"nodeType":"YulAssignment","src":"2633:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2660:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2671:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2656:3:61"},"nodeType":"YulFunctionCall","src":"2656:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2643:12:61"},"nodeType":"YulFunctionCall","src":"2643:32:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2633:6:61"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1622:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1633:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1645:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1653:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1661:6:61","type":""}],"src":"1559:1122:61"},{"body":{"nodeType":"YulBlock","src":"2739:205:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2749:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2758:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2753:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2818:63:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2843:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"2848:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2839:3:61"},"nodeType":"YulFunctionCall","src":"2839:11:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2862:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"2867:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2858:3:61"},"nodeType":"YulFunctionCall","src":"2858:11:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2852:5:61"},"nodeType":"YulFunctionCall","src":"2852:18:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2832:6:61"},"nodeType":"YulFunctionCall","src":"2832:39:61"},"nodeType":"YulExpressionStatement","src":"2832:39:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2779:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"2782:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2776:2:61"},"nodeType":"YulFunctionCall","src":"2776:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2790:19:61","statements":[{"nodeType":"YulAssignment","src":"2792:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2801:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"2804:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2797:3:61"},"nodeType":"YulFunctionCall","src":"2797:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2792:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"2772:3:61","statements":[]},"src":"2768:113:61"},{"body":{"nodeType":"YulBlock","src":"2907:31:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2920:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"2925:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2916:3:61"},"nodeType":"YulFunctionCall","src":"2916:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"2934:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2909:6:61"},"nodeType":"YulFunctionCall","src":"2909:27:61"},"nodeType":"YulExpressionStatement","src":"2909:27:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2896:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"2899:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2893:2:61"},"nodeType":"YulFunctionCall","src":"2893:13:61"},"nodeType":"YulIf","src":"2890:48:61"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2717:3:61","type":""},{"name":"dst","nodeType":"YulTypedName","src":"2722:3:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"2727:6:61","type":""}],"src":"2686:258:61"},{"body":{"nodeType":"YulBlock","src":"2998:267:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3008:26:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3028:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3022:5:61"},"nodeType":"YulFunctionCall","src":"3022:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3012:6:61","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3050:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"3055:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3043:6:61"},"nodeType":"YulFunctionCall","src":"3043:19:61"},"nodeType":"YulExpressionStatement","src":"3043:19:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3097:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3104:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3093:3:61"},"nodeType":"YulFunctionCall","src":"3093:16:61"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3115:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"3120:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3111:3:61"},"nodeType":"YulFunctionCall","src":"3111:14:61"},{"name":"length","nodeType":"YulIdentifier","src":"3127:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3071:21:61"},"nodeType":"YulFunctionCall","src":"3071:63:61"},"nodeType":"YulExpressionStatement","src":"3071:63:61"},{"nodeType":"YulAssignment","src":"3143:116:61","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3158:3:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3171:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3179:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3167:3:61"},"nodeType":"YulFunctionCall","src":"3167:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3184:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3163:3:61"},"nodeType":"YulFunctionCall","src":"3163:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3154:3:61"},"nodeType":"YulFunctionCall","src":"3154:98:61"},{"kind":"number","nodeType":"YulLiteral","src":"3254:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3150:3:61"},"nodeType":"YulFunctionCall","src":"3150:109:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3143:3:61"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2975:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2982:3:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2990:3:61","type":""}],"src":"2949:316:61"},{"body":{"nodeType":"YulBlock","src":"3389:98:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3406:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3417:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3399:6:61"},"nodeType":"YulFunctionCall","src":"3399:21:61"},"nodeType":"YulExpressionStatement","src":"3399:21:61"},{"nodeType":"YulAssignment","src":"3429:52:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3454:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3466:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3477:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3462:3:61"},"nodeType":"YulFunctionCall","src":"3462:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"3437:16:61"},"nodeType":"YulFunctionCall","src":"3437:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3429:4:61"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3358:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3369:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3380:4:61","type":""}],"src":"3270:217:61"},{"body":{"nodeType":"YulBlock","src":"3562:110:61","statements":[{"body":{"nodeType":"YulBlock","src":"3608:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3617:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3620:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3610:6:61"},"nodeType":"YulFunctionCall","src":"3610:12:61"},"nodeType":"YulExpressionStatement","src":"3610:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3583:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"3592:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3579:3:61"},"nodeType":"YulFunctionCall","src":"3579:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"3604:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3575:3:61"},"nodeType":"YulFunctionCall","src":"3575:32:61"},"nodeType":"YulIf","src":"3572:52:61"},{"nodeType":"YulAssignment","src":"3633:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3656:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3643:12:61"},"nodeType":"YulFunctionCall","src":"3643:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3633:6:61"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3528:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3539:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3551:6:61","type":""}],"src":"3492:180:61"},{"body":{"nodeType":"YulBlock","src":"3851:237:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3868:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3879:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3861:6:61"},"nodeType":"YulFunctionCall","src":"3861:21:61"},"nodeType":"YulExpressionStatement","src":"3861:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3902:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3913:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3898:3:61"},"nodeType":"YulFunctionCall","src":"3898:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"3918:2:61","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3891:6:61"},"nodeType":"YulFunctionCall","src":"3891:30:61"},"nodeType":"YulExpressionStatement","src":"3891:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3941:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3952:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3937:3:61"},"nodeType":"YulFunctionCall","src":"3937:18:61"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"3957:34:61","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3930:6:61"},"nodeType":"YulFunctionCall","src":"3930:62:61"},"nodeType":"YulExpressionStatement","src":"3930:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4012:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4023:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4008:3:61"},"nodeType":"YulFunctionCall","src":"4008:18:61"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"4028:17:61","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4001:6:61"},"nodeType":"YulFunctionCall","src":"4001:45:61"},"nodeType":"YulExpressionStatement","src":"4001:45:61"},{"nodeType":"YulAssignment","src":"4055:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4067:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4078:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4063:3:61"},"nodeType":"YulFunctionCall","src":"4063:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4055:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3828:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3842:4:61","type":""}],"src":"3677:411:61"},{"body":{"nodeType":"YulBlock","src":"4194:76:61","statements":[{"nodeType":"YulAssignment","src":"4204:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4216:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4227:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4212:3:61"},"nodeType":"YulFunctionCall","src":"4212:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4204:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4246:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"4257:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4239:6:61"},"nodeType":"YulFunctionCall","src":"4239:25:61"},"nodeType":"YulExpressionStatement","src":"4239:25:61"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4163:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4174:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4185:4:61","type":""}],"src":"4093:177:61"},{"body":{"nodeType":"YulBlock","src":"4412:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"4422:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4442:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4436:5:61"},"nodeType":"YulFunctionCall","src":"4436:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4426:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4484:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4492:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4480:3:61"},"nodeType":"YulFunctionCall","src":"4480:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"4499:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"4504:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4458:21:61"},"nodeType":"YulFunctionCall","src":"4458:53:61"},"nodeType":"YulExpressionStatement","src":"4458:53:61"},{"nodeType":"YulAssignment","src":"4520:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4531:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"4536:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4527:3:61"},"nodeType":"YulFunctionCall","src":"4527:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4520:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4388:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4393:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4404:3:61","type":""}],"src":"4275:274:61"},{"body":{"nodeType":"YulBlock","src":"4728:181:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4745:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4756:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4738:6:61"},"nodeType":"YulFunctionCall","src":"4738:21:61"},"nodeType":"YulExpressionStatement","src":"4738:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4779:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4790:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:61"},"nodeType":"YulFunctionCall","src":"4775:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"4795:2:61","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4768:6:61"},"nodeType":"YulFunctionCall","src":"4768:30:61"},"nodeType":"YulExpressionStatement","src":"4768:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4818:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4829:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4814:3:61"},"nodeType":"YulFunctionCall","src":"4814:18:61"},{"hexValue":"5065726d697373696f6e656443616c6c65723a2063616c6c206661696c6564","kind":"string","nodeType":"YulLiteral","src":"4834:33:61","type":"","value":"PermissionedCaller: call failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4807:6:61"},"nodeType":"YulFunctionCall","src":"4807:61:61"},"nodeType":"YulExpressionStatement","src":"4807:61:61"},{"nodeType":"YulAssignment","src":"4877:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:61"},"nodeType":"YulFunctionCall","src":"4885:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4877:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_01ef1fa443964e09936b26e0536063ee06c2ed866b4517b5e8e512b5dd110dba__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4705:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4719:4:61","type":""}],"src":"4554:355:61"},{"body":{"nodeType":"YulBlock","src":"5088:253:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5105:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5116:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5098:6:61"},"nodeType":"YulFunctionCall","src":"5098:21:61"},"nodeType":"YulExpressionStatement","src":"5098:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5139:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5150:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5135:3:61"},"nodeType":"YulFunctionCall","src":"5135:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"5155:2:61","type":"","value":"63"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5128:6:61"},"nodeType":"YulFunctionCall","src":"5128:30:61"},"nodeType":"YulExpressionStatement","src":"5128:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5178:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5189:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5174:3:61"},"nodeType":"YulFunctionCall","src":"5174:18:61"},{"hexValue":"4d616e61676564536572766963653a20496e73756666696369656e742066756e","kind":"string","nodeType":"YulLiteral","src":"5194:34:61","type":"","value":"ManagedService: Insufficient fun"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5167:6:61"},"nodeType":"YulFunctionCall","src":"5167:62:61"},"nodeType":"YulExpressionStatement","src":"5167:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5249:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5260:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5245:3:61"},"nodeType":"YulFunctionCall","src":"5245:18:61"},{"hexValue":"647320746f2077697468647261772070726f746f636f6c207061796d656e74","kind":"string","nodeType":"YulLiteral","src":"5265:33:61","type":"","value":"ds to withdraw protocol payment"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5238:6:61"},"nodeType":"YulFunctionCall","src":"5238:61:61"},"nodeType":"YulExpressionStatement","src":"5238:61:61"},{"nodeType":"YulAssignment","src":"5308:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5320:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5331:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5316:3:61"},"nodeType":"YulFunctionCall","src":"5316:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5308:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_07ccc52a2421159a81cb1efd13f66c0824b69ef4653e7966f225cd9e92086f45__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5065:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5079:4:61","type":""}],"src":"4914:427:61"},{"body":{"nodeType":"YulBlock","src":"5520:241:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5537:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5548:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5530:6:61"},"nodeType":"YulFunctionCall","src":"5530:21:61"},"nodeType":"YulExpressionStatement","src":"5530:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5571:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5582:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5567:3:61"},"nodeType":"YulFunctionCall","src":"5567:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"5587:2:61","type":"","value":"51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5560:6:61"},"nodeType":"YulFunctionCall","src":"5560:30:61"},"nodeType":"YulExpressionStatement","src":"5560:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5610:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5621:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5606:3:61"},"nodeType":"YulFunctionCall","src":"5606:18:61"},{"hexValue":"4d616e61676564536572766963653a204661696c656420746f20776974686472","kind":"string","nodeType":"YulLiteral","src":"5626:34:61","type":"","value":"ManagedService: Failed to withdr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5599:6:61"},"nodeType":"YulFunctionCall","src":"5599:62:61"},"nodeType":"YulExpressionStatement","src":"5599:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5681:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5692:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5677:3:61"},"nodeType":"YulFunctionCall","src":"5677:18:61"},{"hexValue":"61772070726f746f636f6c207061796d656e74","kind":"string","nodeType":"YulLiteral","src":"5697:21:61","type":"","value":"aw protocol payment"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5670:6:61"},"nodeType":"YulFunctionCall","src":"5670:49:61"},"nodeType":"YulExpressionStatement","src":"5670:49:61"},{"nodeType":"YulAssignment","src":"5728:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5740:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5751:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5736:3:61"},"nodeType":"YulFunctionCall","src":"5736:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5728:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_d16a395c54de90dc2892c7f651ed507b1ada33e4854aeca7ae6d40f1efb14a76__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5497:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5511:4:61","type":""}],"src":"5346:415:61"},{"body":{"nodeType":"YulBlock","src":"6155:397:61","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6172:3:61"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"6177:25:61","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6165:6:61"},"nodeType":"YulFunctionCall","src":"6165:38:61"},"nodeType":"YulExpressionStatement","src":"6165:38:61"},{"nodeType":"YulVariableDeclaration","src":"6212:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6232:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6226:5:61"},"nodeType":"YulFunctionCall","src":"6226:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6216:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6274:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"6282:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6270:3:61"},"nodeType":"YulFunctionCall","src":"6270:17:61"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6293:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"6298:2:61","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6289:3:61"},"nodeType":"YulFunctionCall","src":"6289:12:61"},{"name":"length","nodeType":"YulIdentifier","src":"6303:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6248:21:61"},"nodeType":"YulFunctionCall","src":"6248:62:61"},"nodeType":"YulExpressionStatement","src":"6248:62:61"},{"nodeType":"YulVariableDeclaration","src":"6319:26:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6333:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"6338:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6329:3:61"},"nodeType":"YulFunctionCall","src":"6329:16:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6323:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6365:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"6369:2:61","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6361:3:61"},"nodeType":"YulFunctionCall","src":"6361:11:61"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"6374:19:61","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6354:6:61"},"nodeType":"YulFunctionCall","src":"6354:40:61"},"nodeType":"YulExpressionStatement","src":"6354:40:61"},{"nodeType":"YulVariableDeclaration","src":"6403:29:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6425:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6419:5:61"},"nodeType":"YulFunctionCall","src":"6419:13:61"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"6407:8:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6467:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"6475:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6463:3:61"},"nodeType":"YulFunctionCall","src":"6463:17:61"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6486:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"6490:2:61","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6482:3:61"},"nodeType":"YulFunctionCall","src":"6482:11:61"},{"name":"length_1","nodeType":"YulIdentifier","src":"6495:8:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6441:21:61"},"nodeType":"YulFunctionCall","src":"6441:63:61"},"nodeType":"YulExpressionStatement","src":"6441:63:61"},{"nodeType":"YulAssignment","src":"6513:33:61","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6528:2:61"},{"name":"length_1","nodeType":"YulIdentifier","src":"6532:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6524:3:61"},"nodeType":"YulFunctionCall","src":"6524:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"6543:2:61","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6520:3:61"},"nodeType":"YulFunctionCall","src":"6520:26:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6513:3:61"}]}]},"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","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6123:3:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6128:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6136:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6147:3:61","type":""}],"src":"5766:786:61"},{"body":{"nodeType":"YulBlock","src":"6678:98:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6695:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6706:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6688:6:61"},"nodeType":"YulFunctionCall","src":"6688:21:61"},"nodeType":"YulExpressionStatement","src":"6688:21:61"},{"nodeType":"YulAssignment","src":"6718:52:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6743:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6755:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"6766:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6751:3:61"},"nodeType":"YulFunctionCall","src":"6751:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6726:16:61"},"nodeType":"YulFunctionCall","src":"6726:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6718:4:61"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6647:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6658:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6669:4:61","type":""}],"src":"6557:219:61"},{"body":{"nodeType":"YulBlock","src":"6813:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6830:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6833:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6823:6:61"},"nodeType":"YulFunctionCall","src":"6823:88:61"},"nodeType":"YulExpressionStatement","src":"6823:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6927:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6930:4:61","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6920:6:61"},"nodeType":"YulFunctionCall","src":"6920:15:61"},"nodeType":"YulExpressionStatement","src":"6920:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6951:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6954:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6944:6:61"},"nodeType":"YulFunctionCall","src":"6944:15:61"},"nodeType":"YulExpressionStatement","src":"6944:15:61"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"6781:184:61"},{"body":{"nodeType":"YulBlock","src":"7022:176:61","statements":[{"body":{"nodeType":"YulBlock","src":"7141:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7143:16:61"},"nodeType":"YulFunctionCall","src":"7143:18:61"},"nodeType":"YulExpressionStatement","src":"7143:18:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7053:1:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7046:6:61"},"nodeType":"YulFunctionCall","src":"7046:9:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7039:6:61"},"nodeType":"YulFunctionCall","src":"7039:17:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7061:1:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7068:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"7136:1:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7064:3:61"},"nodeType":"YulFunctionCall","src":"7064:74:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7058:2:61"},"nodeType":"YulFunctionCall","src":"7058:81:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7035:3:61"},"nodeType":"YulFunctionCall","src":"7035:105:61"},"nodeType":"YulIf","src":"7032:131:61"},{"nodeType":"YulAssignment","src":"7172:20:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7187:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"7190:1:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7183:3:61"},"nodeType":"YulFunctionCall","src":"7183:9:61"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"7172:7:61"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7001:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"7004:1:61","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"7010:7:61","type":""}],"src":"6970:228:61"},{"body":{"nodeType":"YulBlock","src":"7251:80:61","statements":[{"body":{"nodeType":"YulBlock","src":"7278:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7280:16:61"},"nodeType":"YulFunctionCall","src":"7280:18:61"},"nodeType":"YulExpressionStatement","src":"7280:18:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7267:1:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7274:1:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7270:3:61"},"nodeType":"YulFunctionCall","src":"7270:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7264:2:61"},"nodeType":"YulFunctionCall","src":"7264:13:61"},"nodeType":"YulIf","src":"7261:39:61"},{"nodeType":"YulAssignment","src":"7309:16:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7320:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"7323:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7316:3:61"},"nodeType":"YulFunctionCall","src":"7316:9:61"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"7309:3:61"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7234:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"7237:1:61","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"7243:3:61","type":""}],"src":"7203:128:61"},{"body":{"nodeType":"YulBlock","src":"7368:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7385:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7388:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7378:6:61"},"nodeType":"YulFunctionCall","src":"7378:88:61"},"nodeType":"YulExpressionStatement","src":"7378:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7482:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7485:4:61","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7475:6:61"},"nodeType":"YulFunctionCall","src":"7475:15:61"},"nodeType":"YulExpressionStatement","src":"7475:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7506:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7509:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7499:6:61"},"nodeType":"YulFunctionCall","src":"7499:15:61"},"nodeType":"YulExpressionStatement","src":"7499:15:61"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"7336:184:61"},{"body":{"nodeType":"YulBlock","src":"7572:149:61","statements":[{"body":{"nodeType":"YulBlock","src":"7599:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7601:16:61"},"nodeType":"YulFunctionCall","src":"7601:18:61"},"nodeType":"YulExpressionStatement","src":"7601:18:61"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7592:5:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7585:6:61"},"nodeType":"YulFunctionCall","src":"7585:13:61"},"nodeType":"YulIf","src":"7582:39:61"},{"nodeType":"YulAssignment","src":"7630:85:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7641:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"7648:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7637:3:61"},"nodeType":"YulFunctionCall","src":"7637:78:61"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"7630:3:61"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7554:5:61","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"7564:3:61","type":""}],"src":"7525:196:61"},{"body":{"nodeType":"YulBlock","src":"7900:182:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7917:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7928:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7910:6:61"},"nodeType":"YulFunctionCall","src":"7910:21:61"},"nodeType":"YulExpressionStatement","src":"7910:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7951:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"7962:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7947:3:61"},"nodeType":"YulFunctionCall","src":"7947:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"7967:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7940:6:61"},"nodeType":"YulFunctionCall","src":"7940:30:61"},"nodeType":"YulExpressionStatement","src":"7940:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7990:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8001:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7986:3:61"},"nodeType":"YulFunctionCall","src":"7986:18:61"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"8006:34:61","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7979:6:61"},"nodeType":"YulFunctionCall","src":"7979:62:61"},"nodeType":"YulExpressionStatement","src":"7979:62:61"},{"nodeType":"YulAssignment","src":"8050:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8062:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"8073:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8058:3:61"},"nodeType":"YulFunctionCall","src":"8058:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8050:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7877:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7891:4:61","type":""}],"src":"7726:356:61"}]},"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_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_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_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 panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\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        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        value1 := memPtr\n        value2 := calldataload(add(headStart, 64))\n    }\n    function copy_memory_to_memory(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        if gt(i, length) { 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(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_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_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_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(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_01ef1fa443964e09936b26e0536063ee06c2ed866b4517b5e8e512b5dd110dba__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), \"PermissionedCaller: call failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_07ccc52a2421159a81cb1efd13f66c0824b69ef4653e7966f225cd9e92086f45__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), \"ManagedService: Insufficient fun\")\n        mstore(add(headStart, 96), \"ds to withdraw protocol payment\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d16a395c54de90dc2892c7f651ed507b1ada33e4854aeca7ae6d40f1efb14a76__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), \"ManagedService: Failed to withdr\")\n        mstore(add(headStart, 96), \"aw protocol payment\")\n        tail := add(headStart, 128)\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(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(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        tail := abi_encode_bytes(value0, add(headStart, 32))\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        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\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":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100b55760003560e01c8063774237fc11610069578063a217fddf1161004e578063a217fddf1461021b578063b74e9e3b14610230578063d547741f1461025057600080fd5b8063774237fc1461019657806391d14854146101ca57600080fd5b80632f2ff15d1161009a5780632f2ff15d1461013457806336568abe1461015657806354132d781461017657600080fd5b806301ffc9a7146100c1578063248a9ca3146100f657600080fd5b366100bc57005b600080fd5b3480156100cd57600080fd5b506100e16100dc366004610ba6565b610270565b60405190151581526020015b60405180910390f35b34801561010257600080fd5b50610126610111366004610be8565b60009081526020819052604090206001015490565b6040519081526020016100ed565b34801561014057600080fd5b5061015461014f366004610c2a565b610309565b005b34801561016257600080fd5b50610154610171366004610c2a565b610333565b610189610184366004610c85565b6103d1565b6040516100ed9190610dac565b3480156101a257600080fd5b506101267f843c3a00fa95510a35f425371231fd3fe4642e719cb4595160763d6d02594b5081565b3480156101d657600080fd5b506100e16101e5366004610c2a565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561022757600080fd5b50610126600081565b34801561023c57600080fd5b5061015461024b366004610be8565b610511565b34801561025c57600080fd5b5061015461026b366004610c2a565b6106fe565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061030357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461032481610723565b61032e8383610730565b505050565b73ffffffffffffffffffffffffffffffffffffffff811633146103c35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6103cd8282610820565b5050565b60607f843c3a00fa95510a35f425371231fd3fe4642e719cb4595160763d6d02594b506103fd81610723565b60405183815273ffffffffffffffffffffffffffffffffffffffff86169033907fc2822ad937e2e42263be82e6c6bd0969b5d174e5a131d5c6372d47cb54cbbce79060200160405180910390a36000808673ffffffffffffffffffffffffffffffffffffffff1685876040516104739190610dbf565b60006040518083038185875af1925050503d80600081146104b0576040519150601f19603f3d011682016040523d82523d6000602084013e6104b5565b606091505b5091509150816105075760405162461bcd60e51b815260206004820152601f60248201527f5065726d697373696f6e656443616c6c65723a2063616c6c206661696c65640060448201526064016103ba565b9695505050505050565b3360009081527f96a39c6873e8c91df4ff4e5fee2914eac96e97cdea7396527c6f3edbad83a904602052604090205460ff16610579576040517fbf7ee2a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b478111156105ef5760405162461bcd60e51b815260206004820152603f60248201527f4d616e61676564536572766963653a20496e73756666696369656e742066756e60448201527f647320746f2077697468647261772070726f746f636f6c207061796d656e740060648201526084016103ba565b60405181815233907f95c4271d7d135112b6c5b35869852607dbafbfab924b79a54d15a440394461079060200160405180910390a260408051600080825260208201909252339083906040516106459190610dbf565b60006040518083038185875af1925050503d8060008114610682576040519150601f19603f3d011682016040523d82523d6000602084013e610687565b606091505b50509050806103cd5760405162461bcd60e51b815260206004820152603360248201527f4d616e61676564536572766963653a204661696c656420746f2077697468647260448201527f61772070726f746f636f6c207061796d656e740000000000000000000000000060648201526084016103ba565b60008281526020819052604090206001015461071981610723565b61032e8383610820565b61072d81336108d7565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166103cd5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556107c23390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156103cd5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166103cd5761091581610957565b610920836020610976565b604051602001610931929190610ddb565b60408051601f198184030181529082905262461bcd60e51b82526103ba91600401610dac565b606061030373ffffffffffffffffffffffffffffffffffffffff831660145b60606000610985836002610e8b565b610990906002610ec8565b67ffffffffffffffff8111156109a8576109a8610c56565b6040519080825280601f01601f1916602001820160405280156109d2576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610a0957610a09610ee0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610a6c57610a6c610ee0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610aa8846002610e8b565b610ab3906001610ec8565b90505b6001811115610b50577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610af457610af4610ee0565b1a60f81b828281518110610b0a57610b0a610ee0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610b4981610f0f565b9050610ab6565b508315610b9f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016103ba565b9392505050565b600060208284031215610bb857600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610b9f57600080fd5b600060208284031215610bfa57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c2557600080fd5b919050565b60008060408385031215610c3d57600080fd5b82359150610c4d60208401610c01565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610c9a57600080fd5b610ca384610c01565b9250602084013567ffffffffffffffff80821115610cc057600080fd5b818601915086601f830112610cd457600080fd5b813581811115610ce657610ce6610c56565b604051601f8201601f19908116603f01168101908382118183101715610d0e57610d0e610c56565b81604052828152896020848701011115610d2757600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b60005b83811015610d6b578181015183820152602001610d53565b83811115610d7a576000848401525b50505050565b60008151808452610d98816020860160208601610d50565b601f01601f19169290920160200192915050565b602081526000610b9f6020830184610d80565b60008251610dd1818460208701610d50565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610e13816017850160208801610d50565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351610e50816028840160208801610d50565b01602801949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610ec357610ec3610e5c565b500290565b60008219821115610edb57610edb610e5c565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081610f1e57610f1e610e5c565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x774237FC GT PUSH2 0x69 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x4E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0xB74E9E3B EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x774237FC EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x9A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x54132D78 EQ PUSH2 0x176 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0xBC JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0xBA6 JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH2 0x111 CALLDATASIZE PUSH1 0x4 PUSH2 0xBE8 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 CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A JUMP JUMPDEST PUSH2 0x309 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A JUMP JUMPDEST PUSH2 0x333 JUMP JUMPDEST PUSH2 0x189 PUSH2 0x184 CALLDATASIZE PUSH1 0x4 PUSH2 0xC85 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xDAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH32 0x843C3A00FA95510A35F425371231FD3FE4642E719CB4595160763D6D02594B50 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE1 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A 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 CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x126 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0xBE8 JUMP JUMPDEST PUSH2 0x511 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0xC2A JUMP JUMPDEST PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x303 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x324 DUP2 PUSH2 0x723 JUMP JUMPDEST PUSH2 0x32E DUP4 DUP4 PUSH2 0x730 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND CALLER EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL 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 0x3CD DUP3 DUP3 PUSH2 0x820 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH32 0x843C3A00FA95510A35F425371231FD3FE4642E719CB4595160763D6D02594B50 PUSH2 0x3FD DUP2 PUSH2 0x723 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP1 CALLER SWAP1 PUSH32 0xC2822AD937E2E42263BE82E6C6BD0969B5D174E5A131D5C6372D47CB54CBBCE7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x473 SWAP2 SWAP1 PUSH2 0xDBF 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 0x4B0 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 0x4B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x507 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 0x5065726D697373696F6E656443616C6C65723A2063616C6C206661696C656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3BA JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x96A39C6873E8C91DF4FF4E5FEE2914EAC96E97CDEA7396527C6F3EDBAD83A904 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x579 JUMPI PUSH1 0x40 MLOAD PUSH32 0xBF7EE2A300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SELFBALANCE DUP2 GT ISZERO PUSH2 0x5EF 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 0x4D616E61676564536572766963653A20496E73756666696369656E742066756E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647320746F2077697468647261772070726F746F636F6C207061796D656E7400 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE CALLER SWAP1 PUSH32 0x95C4271D7D135112B6C5B35869852607DBAFBFAB924B79A54D15A44039446107 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE CALLER SWAP1 DUP4 SWAP1 PUSH1 0x40 MLOAD PUSH2 0x645 SWAP2 SWAP1 PUSH2 0xDBF 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 0x682 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 0x687 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x3CD 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 0x4D616E61676564536572766963653A204661696C656420746F20776974686472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61772070726F746F636F6C207061796D656E7400000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x719 DUP2 PUSH2 0x723 JUMP JUMPDEST PUSH2 0x32E DUP4 DUP4 PUSH2 0x820 JUMP JUMPDEST PUSH2 0x72D DUP2 CALLER PUSH2 0x8D7 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 0x3CD 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 0x7C2 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 0x3CD 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 0x3CD JUMPI PUSH2 0x915 DUP2 PUSH2 0x957 JUMP JUMPDEST PUSH2 0x920 DUP4 PUSH1 0x20 PUSH2 0x976 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x931 SWAP3 SWAP2 SWAP1 PUSH2 0xDDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x3BA SWAP2 PUSH1 0x4 ADD PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x60 PUSH2 0x303 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x985 DUP4 PUSH1 0x2 PUSH2 0xE8B JUMP JUMPDEST PUSH2 0x990 SWAP1 PUSH1 0x2 PUSH2 0xEC8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9A8 JUMPI PUSH2 0x9A8 PUSH2 0xC56 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 0x9D2 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 0xA09 JUMPI PUSH2 0xA09 PUSH2 0xEE0 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 0xA6C JUMPI PUSH2 0xA6C PUSH2 0xEE0 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0xAA8 DUP5 PUSH1 0x2 PUSH2 0xE8B JUMP JUMPDEST PUSH2 0xAB3 SWAP1 PUSH1 0x1 PUSH2 0xEC8 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xB50 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0xAF4 JUMPI PUSH2 0xAF4 PUSH2 0xEE0 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB0A JUMPI PUSH2 0xB0A PUSH2 0xEE0 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 0xB49 DUP2 PUSH2 0xF0F JUMP JUMPDEST SWAP1 POP PUSH2 0xAB6 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xB9F 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 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0xB9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xC4D PUSH1 0x20 DUP5 ADD PUSH2 0xC01 JUMP JUMPDEST SWAP1 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 0xC9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCA3 DUP5 PUSH2 0xC01 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCE6 JUMPI PUSH2 0xCE6 PUSH2 0xC56 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 0xD0E JUMPI PUSH2 0xD0E PUSH2 0xC56 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xD27 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 SWAP7 POP POP POP POP POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD6B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD53 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xD7A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD98 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD50 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 0xB9F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD80 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xDD1 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xD50 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xE13 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD50 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xE50 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD50 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xEC3 JUMPI PUSH2 0xEC3 PUSH2 0xE5C JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xEDB JUMPI PUSH2 0xEDB PUSH2 0xE5C JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xF1E JUMPI PUSH2 0xF1E PUSH2 0xE5C JUMP JUMPDEST POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"434:2624:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:202:11;;;;;;;;;;-1:-1:-1;2732:202:11;;;;;:::i;:::-;;:::i;:::-;;;516:14:61;;509:22;491:41;;479:2;464:18;2732:202:11;;;;;;;;4504:129;;;;;;;;;;-1:-1:-1;4504:129:11;;;;;:::i;:::-;4578:7;4604:12;;;;;;;;;;:22;;;;4504:129;;;;874:25:61;;;862:2;847:18;4504:129:11;728:177:61;4929:145:11;;;;;;;;;;-1:-1:-1;4929:145:11;;;;;:::i;:::-;;:::i;:::-;;6038:214;;;;;;;;;;-1:-1:-1;6038:214:11;;;;;:::i;:::-;;:::i;1746:393:39:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;481:62::-;;;;;;;;;;;;519:24;481:62;;3021:145:11;;;;;;;;;;-1:-1:-1;3021:145:11;;;;;:::i;:::-;3107:4;3130:12;;;;;;;;;;;:29;;;;;;;;;;;;;;;;3021:145;2153:49;;;;;;;;;;-1:-1:-1;2153:49:11;2198:4;2153:49;;2295:654:39;;;;;;;;;;-1:-1:-1;2295:654:39;;;;;:::i;:::-;;:::i;5354:147:11:-;;;;;;;;;;-1:-1:-1;5354:147:11;;;;;:::i;:::-;;:::i;2732:202::-;2817:4;2840:47;;;2855:32;2840:47;;:87;;-1:-1:-1;952:25:24;937:40;;;;2891:36:11;2833:94;2732:202;-1:-1:-1;;2732:202:11:o;4929:145::-;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;;;719:10:17;6133:23:11;6125:83;;;;-1:-1:-1;;;6125:83:11;;3879:2:61;6125:83:11;;;3861:21:61;3918:2;3898:18;;;3891:30;3957:34;3937:18;;;3930:62;4028:17;4008:18;;;4001:45;4063:19;;6125:83:11;;;;;;;;;6219:26;6231:4;6237:7;6219:11;:26::i;:::-;6038:214;;:::o;1746:393:39:-;1894:12;519:24;2631:16:11;2642:4;2631:10;:16::i;:::-;1923:37:39::1;::::0;874:25:61;;;1923:37:39::1;::::0;::::1;::::0;1936:10:::1;::::0;1923:37:::1;::::0;862:2:61;847:18;1923:37:39::1;;;;;;;1971:12;1985:23:::0;2012:3:::1;:8;;2029:6;2038:5;2012:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1970:74;;;;2062:7;2054:51;;;::::0;-1:-1:-1;;;2054:51:39;;4756:2:61;2054:51:39::1;::::0;::::1;4738:21:61::0;4795:2;4775:18;;;4768:30;4834:33;4814:18;;;4807:61;4885:18;;2054:51:39::1;4554:355:61::0;2054:51:39::1;2122:10:::0;1746:393;-1:-1:-1;;;;;;1746:393:39:o;2295:654::-;2407:10;3107:4:11;3130:29;;;:12;;:29;:12;:29;;;;;2361:128:39;;2441:37;;;;;;;;;;;;;;2361:128;2512:21;2502:7;:31;2498:135;;;2549:73;;-1:-1:-1;;;2549:73:39;;5116:2:61;2549:73:39;;;5098:21:61;5155:2;5135:18;;;5128:30;5194:34;5174:18;;;5167:62;5265:33;5245:18;;;5238:61;5316:19;;2549:73:39;4914:427:61;2498:135:39;2648:43;;874:25:61;;;2671:10:39;;2648:43;;862:2:61;847:18;2648:43:39;;;;;;;2820:12;;;2759;2820;;;;;;;;;2785:10;;2810:7;;2777:56;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2758:75;;;2848:7;2843:100;;2871:61;;-1:-1:-1;;;2871:61:39;;5548:2:61;2871:61:39;;;5530:21:61;5587:2;5567:18;;;5560:30;5626:34;5606:18;;;5599:62;5697:21;5677:18;;;5670:49;5736:19;;2871:61:39;5346:415:61;5354:147:11;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;719:10:17;3526::11;: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;719:10:17;;640:96;7790:12:11;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;719:10:17;;8112:12:11;;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:11;;;;;;;;;;-1:-1:-1;;;3970:336:11;;;;;;;:::i;2407:149:20:-;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:20;;1918:47;;1975:15;:6;1982:1;1975:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;2000;:6;2007:1;2000:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;2030:9:20;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:20;2131:11;;;;;2065:3;;;:::i;:::-;;;2025:128;;;-1:-1:-1;2170:10:20;;2162:55;;;;-1:-1:-1;;;2162:55:20;;7928:2:61;2162:55:20;;;7910:21:61;;;7947:18;;;7940:30;8006:34;7986:18;;;7979:62;8058:18;;2162:55:20;7726:356:61;2162:55:20;2241:6;1818:437;-1:-1:-1;;;1818:437:20:o;14:332:61:-;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:180;602:6;655:2;643:9;634:7;630:23;626:32;623:52;;;671:1;668;661:12;623:52;-1:-1:-1;694:23:61;;543:180;-1:-1:-1;543:180:61:o;910:196::-;978:20;;1038:42;1027:54;;1017:65;;1007:93;;1096:1;1093;1086:12;1007:93;910:196;;;:::o;1111:254::-;1179:6;1187;1240:2;1228:9;1219:7;1215:23;1211:32;1208:52;;;1256:1;1253;1246:12;1208:52;1292:9;1279:23;1269:33;;1321:38;1355:2;1344:9;1340:18;1321:38;:::i;:::-;1311:48;;1111:254;;;;;:::o;1370:184::-;1422:77;1419:1;1412:88;1519:4;1516:1;1509:15;1543:4;1540:1;1533:15;1559:1122;1645:6;1653;1661;1714:2;1702:9;1693:7;1689:23;1685:32;1682:52;;;1730:1;1727;1720:12;1682:52;1753:29;1772:9;1753:29;:::i;:::-;1743:39;;1833:2;1822:9;1818:18;1805:32;1856:18;1897:2;1889:6;1886:14;1883:34;;;1913:1;1910;1903:12;1883:34;1951:6;1940:9;1936:22;1926:32;;1996:7;1989:4;1985:2;1981:13;1977:27;1967:55;;2018:1;2015;2008:12;1967:55;2054:2;2041:16;2076:2;2072;2069:10;2066:36;;;2082:18;;:::i;:::-;2216:2;2210:9;2278:4;2270:13;;-1:-1:-1;;2266:22:61;;;2290:2;2262:31;2258:40;2246:53;;;2314:18;;;2334:22;;;2311:46;2308:72;;;2360:18;;:::i;:::-;2400:10;2396:2;2389:22;2435:2;2427:6;2420:18;2475:7;2470:2;2465;2461;2457:11;2453:20;2450:33;2447:53;;;2496:1;2493;2486:12;2447:53;2552:2;2547;2543;2539:11;2534:2;2526:6;2522:15;2509:46;2597:1;2592:2;2587;2579:6;2575:15;2571:24;2564:35;2618:6;2608:16;;;;;;;2671:2;2660:9;2656:18;2643:32;2633:42;;1559:1122;;;;;:::o;2686:258::-;2758:1;2768:113;2782:6;2779:1;2776:13;2768:113;;;2858:11;;;2852:18;2839:11;;;2832:39;2804:2;2797:10;2768:113;;;2899:6;2896:1;2893:13;2890:48;;;2934:1;2925:6;2920:3;2916:16;2909:27;2890:48;;2686:258;;;:::o;2949:316::-;2990:3;3028:5;3022:12;3055:6;3050:3;3043:19;3071:63;3127:6;3120:4;3115:3;3111:14;3104:4;3097:5;3093:16;3071:63;:::i;:::-;3179:2;3167:15;-1:-1:-1;;3163:88:61;3154:98;;;;3254:4;3150:109;;2949:316;-1:-1:-1;;2949:316:61:o;3270:217::-;3417:2;3406:9;3399:21;3380:4;3437:44;3477:2;3466:9;3462:18;3454:6;3437:44;:::i;4275:274::-;4404:3;4442:6;4436:13;4458:53;4504:6;4499:3;4492:4;4484:6;4480:17;4458:53;:::i;:::-;4527:16;;;;;4275:274;-1:-1:-1;;4275:274:61:o;5766:786::-;6177:25;6172:3;6165:38;6147:3;6232:6;6226:13;6248:62;6303:6;6298:2;6293:3;6289:12;6282:4;6274:6;6270:17;6248:62;:::i;:::-;6374:19;6369:2;6329:16;;;6361:11;;;6354:40;6419:13;;6441:63;6419:13;6490:2;6482:11;;6475:4;6463:17;;6441:63;:::i;:::-;6524:17;6543:2;6520:26;;5766:786;-1:-1:-1;;;;5766:786:61:o;6781:184::-;6833:77;6830:1;6823:88;6930:4;6927:1;6920:15;6954:4;6951:1;6944:15;6970:228;7010:7;7136:1;7068:66;7064:74;7061:1;7058:81;7053:1;7046:9;7039:17;7035:105;7032:131;;;7143:18;;:::i;:::-;-1:-1:-1;7183:9:61;;6970:228::o;7203:128::-;7243:3;7274:1;7270:6;7267:1;7264:13;7261:39;;;7280:18;;:::i;:::-;-1:-1:-1;7316:9:61;;7203:128::o;7336:184::-;7388:77;7385:1;7378:88;7485:4;7482:1;7475:15;7509:4;7506:1;7499:15;7525:196;7564:3;7592:5;7582:39;;7601:18;;:::i;:::-;-1:-1:-1;7648:66:61;7637:78;;7525:196::o"},"methodIdentifiers":{"CALLER_ROLE()":"774237fc","DEFAULT_ADMIN_ROLE()":"a217fddf","claimProtocolPayment(uint256)":"b74e9e3b","executeCall(address,bytes,uint256)":"54132d78","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.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallerIsNotProtocolPaymentRecipient\",\"type\":\"error\"},{\"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\":\"ExecutedCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ProtocolPaymentClaimed\",\"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\":\"CALLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"claimProtocolPayment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"executeCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"ProtocolPaymentClaimed(address,uint256)\":{\"params\":{\"amount\":\"Amount of ETH withdrawn.\",\"recipient\":\"The recipient that withdrew the funds.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_owner\":\"The address that will be granted the `DEFAULT_ADMIN_ROLE`. This address is the multisig owned by the ChugSplash team.\"}},\"executeCall(address,bytes,uint256)\":{\"params\":{\"_data\":\"The calldata.\",\"_to\":\"Address of target contract.\"}},\"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}.\"}},\"title\":\"ManagedService\",\"version\":1},\"userdoc\":{\"errors\":{\"CallerIsNotProtocolPaymentRecipient()\":[{\"notice\":\"Reverts if the caller is not a protocol payment recipient.\"}]},\"events\":{\"ProtocolPaymentClaimed(address,uint256)\":{\"notice\":\"Emitted when a protocol payment recipient claims a payment.\"}},\"kind\":\"user\",\"methods\":{\"claimProtocolPayment(uint256)\":{\"notice\":\"Allows the protocol creators to claim their royalty, which is only earned during remotely executed deployments.\"},\"executeCall(address,bytes,uint256)\":{\"notice\":\"Executes an arbitrary call to any contract. This is primarily used to claim         organizations on behalf of users.\"}},\"notice\":\"Contract controlled by the ChugSplash managed service. This contract allows the managed service to remotely execute deployments, propose deployments, and collect the protocol's fee. Users can opt in to this functionality if they choose to do so.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ManagedService.sol\":\"ManagedService\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/ManagedService.sol\":{\"keccak256\":\"0xa881bb49a6d8b649efcbace64793029c5c31b14a785b2f4e9ce112aae08a18b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ff5962c2df8c8e9460b4bf0b597087a39251daff566064cfb16c2c54a10af64\",\"dweb:/ipfs/Qmerh84QefsmGXP3UHWBbxwgwFJwCqxswDdwfgkwSDUDZm\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1820,"contract":"contracts/ManagedService.sol:ManagedService","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1815_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)1815_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1815_storage"},"t_struct(RoleData)1815_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1812,"contract":"contracts/ManagedService.sol:ManagedService","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1814,"contract":"contracts/ManagedService.sol:ManagedService","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}}}},"contracts/Semver.sol":{"Semver":{"abi":[{"inputs":[{"internalType":"uint256","name":"_major","type":"uint256"},{"internalType":"uint256","name":"_minor","type":"uint256"},{"internalType":"uint256","name":"_patch","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"version","outputs":[{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9021":{"entryPoint":null,"id":9021,"parameterSlots":3,"returnSlots":0},"abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory":{"entryPoint":64,"id":null,"parameterSlots":2,"returnSlots":3}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:322:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"129:191:61","statements":[{"body":{"nodeType":"YulBlock","src":"175:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"184:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"187:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"177:6:61"},"nodeType":"YulFunctionCall","src":"177:12:61"},"nodeType":"YulExpressionStatement","src":"177:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"150:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"159:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:61"},"nodeType":"YulFunctionCall","src":"146:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"171:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"142:3:61"},"nodeType":"YulFunctionCall","src":"142:32:61"},"nodeType":"YulIf","src":"139:52:61"},{"nodeType":"YulAssignment","src":"200:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"216:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:61"},"nodeType":"YulFunctionCall","src":"210:16:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"200:6:61"}]},{"nodeType":"YulAssignment","src":"235:35:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"255:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"266:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"251:3:61"},"nodeType":"YulFunctionCall","src":"251:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"245:5:61"},"nodeType":"YulFunctionCall","src":"245:25:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"235:6:61"}]},{"nodeType":"YulAssignment","src":"279:35:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"299:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"310:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"295:3:61"},"nodeType":"YulFunctionCall","src":"295:18:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"289:5:61"},"nodeType":"YulFunctionCall","src":"289:25:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"279:6:61"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"79:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"90:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"102:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"110:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"118:6:61","type":""}],"src":"14:306:61"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := mload(headStart)\n        value1 := mload(add(headStart, 32))\n        value2 := mload(add(headStart, 64))\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405234801561001057600080fd5b506040516101a33803806101a383398101604081905261002f91610040565b60809290925260a05260c05261006e565b60008060006060848603121561005557600080fd5b8351925060208401519150604084015190509250925092565b60805160a05160c05161010961009a600039600060d50152600060af01526000608901526101096000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806354fd4d5014602d575b600080fd5b60336059565b604080518251815260208084015190820152918101519082015260600160405180910390f35b607c60405180606001604052806000815260200160008152602001600081525090565b60405180606001604052807f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081525090509056fea164736f6c634300080f000a","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1A3 CODESIZE SUB DUP1 PUSH2 0x1A3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x40 JUMP JUMPDEST PUSH1 0x80 SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 MSTORE PUSH1 0xC0 MSTORE PUSH2 0x6E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x109 PUSH2 0x9A PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0xD5 ADD MSTORE PUSH1 0x0 PUSH1 0xAF ADD MSTORE PUSH1 0x0 PUSH1 0x89 ADD MSTORE PUSH2 0x109 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 0x54FD4D50 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"207:938:40:-:0;;;710:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;780:22;;;;;812;;844;;207:938;;14:306:61;102:6;110;118;171:2;159:9;150:7;146:23;142:32;139:52;;;187:1;184;177:12;139:52;216:9;210:16;200:26;;266:2;255:9;251:18;245:25;235:35;;310:2;299:9;295:18;289:25;279:35;;14:306;;;;;:::o;:::-;207:938:40;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@version_9035":{"entryPoint":89,"id":9035,"parameterSlots":0,"returnSlots":1},"abi_encode_tuple_t_struct$_Version_$5567_memory_ptr__to_t_struct$_Version_$5567_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:376:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"165:209:61","statements":[{"nodeType":"YulAssignment","src":"175:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"187:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"198:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"183:3:61"},"nodeType":"YulFunctionCall","src":"183:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"175:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"217:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"234:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"228:5:61"},"nodeType":"YulFunctionCall","src":"228:13:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"210:6:61"},"nodeType":"YulFunctionCall","src":"210:32:61"},"nodeType":"YulExpressionStatement","src":"210:32:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"262:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"273:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"258:3:61"},"nodeType":"YulFunctionCall","src":"258:20:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"290:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"298:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"286:3:61"},"nodeType":"YulFunctionCall","src":"286:17:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"280:5:61"},"nodeType":"YulFunctionCall","src":"280:24:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"251:6:61"},"nodeType":"YulFunctionCall","src":"251:54:61"},"nodeType":"YulExpressionStatement","src":"251:54:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"325:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"336:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"321:3:61"},"nodeType":"YulFunctionCall","src":"321:20:61"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"353:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"361:4:61","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"349:3:61"},"nodeType":"YulFunctionCall","src":"349:17:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"343:5:61"},"nodeType":"YulFunctionCall","src":"343:24:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"314:6:61"},"nodeType":"YulFunctionCall","src":"314:54:61"},"nodeType":"YulExpressionStatement","src":"314:54:61"}]},"name":"abi_encode_tuple_t_struct$_Version_$5567_memory_ptr__to_t_struct$_Version_$5567_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"134:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"145:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"156:4:61","type":""}],"src":"14:360:61"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_struct$_Version_$5567_memory_ptr__to_t_struct$_Version_$5567_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, mload(value0))\n        mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n        mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"8992":[{"length":32,"start":137}],"8995":[{"length":32,"start":175}],"8998":[{"length":32,"start":213}]},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060285760003560e01c806354fd4d5014602d575b600080fd5b60336059565b604080518251815260208084015190820152918101519082015260600160405180910390f35b607c60405180606001604052806000815260200160008152602001600081525090565b60405180606001604052807f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081525090509056fea164736f6c634300080f000a","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 0x54FD4D50 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x59 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"207:938:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1011:132;;;:::i;:::-;;;;228:13:61;;210:32;;298:4;286:17;;;280:24;258:20;;;251:54;349:17;;;343:24;321:20;;;314:54;198:2;183:18;1011:132:40;;;;;;;;1051:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1051:14:40;1084:52;;;;;;;;1092:13;1084:52;;;;1107:13;1084:52;;;;1122:13;1084:52;;;1077:59;;1011:132;:::o"},"methodIdentifiers":{"version()":"54fd4d50"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_patch\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_major\":\"Version number (major).\",\"_minor\":\"Version number (minor).\",\"_patch\":\"Version number (patch).\"}},\"version()\":{\"returns\":{\"_0\":\"Semver contract version as a struct.\"}}},\"title\":\"Semver\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"version()\":{\"notice\":\"Returns the full semver contract version.\"}},\"notice\":\"Semver is a simple contract for managing contract versions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Semver.sol\":\"Semver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/Semver.sol\":{\"keccak256\":\"0x52d8f765cd6217080ac1f72ec9e3c890266721dac6140a57191b06929d24998f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b43be60ae13919f8e4a33176b0688d862e6beb96e82061419247a76f49f3905\",\"dweb:/ipfs/QmTd8jUQs9miD6r5vKjcC1xsoMhoKECSSUiQugKn5Qsjgx\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/adapters/DefaultAdapter.sol":{"DefaultAdapter":{"abi":[{"inputs":[{"internalType":"address","name":"_proxyUpdater","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxyUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9071":{"entryPoint":null,"id":9071,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":175,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2b8ce8e8606cf7daef07b554bdecece069ffa7e6e2f27e320724f35a1b4932db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:719:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"},{"body":{"nodeType":"YulBlock","src":"483:234:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:61"},"nodeType":"YulFunctionCall","src":"493:21:61"},"nodeType":"YulExpressionStatement","src":"493:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:61"},"nodeType":"YulFunctionCall","src":"530:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:61","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:61"},"nodeType":"YulFunctionCall","src":"523:30:61"},"nodeType":"YulExpressionStatement","src":"523:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:61"},"nodeType":"YulFunctionCall","src":"569:18:61"},{"hexValue":"44656661756c74416461707465723a20757064617465722063616e6e6f742062","kind":"string","nodeType":"YulLiteral","src":"589:34:61","type":"","value":"DefaultAdapter: updater cannot b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:61"},"nodeType":"YulFunctionCall","src":"562:62:61"},"nodeType":"YulExpressionStatement","src":"562:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"644:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"655:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"640:3:61"},"nodeType":"YulFunctionCall","src":"640:18:61"},{"hexValue":"652061646472657373283029","kind":"string","nodeType":"YulLiteral","src":"660:14:61","type":"","value":"e address(0)"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"633:6:61"},"nodeType":"YulFunctionCall","src":"633:42:61"},"nodeType":"YulExpressionStatement","src":"633:42:61"},{"nodeType":"YulAssignment","src":"684:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"696:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"707:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:61"},"nodeType":"YulFunctionCall","src":"692:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"684:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_2b8ce8e8606cf7daef07b554bdecece069ffa7e6e2f27e320724f35a1b4932db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:61","type":""}],"src":"309:408:61"}]},"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_2b8ce8e8606cf7daef07b554bdecece069ffa7e6e2f27e320724f35a1b4932db__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), \"DefaultAdapter: updater cannot b\")\n        mstore(add(headStart, 96), \"e address(0)\")\n        tail := add(headStart, 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b5060405161065d38038061065d83398101604081905261002f916100af565b6001600160a01b03811661009e5760405162461bcd60e51b815260206004820152602c60248201527f44656661756c74416461707465723a20757064617465722063616e6e6f74206260448201526b65206164647265737328302960a01b606482015260840160405180910390fd5b6001600160a01b03166080526100df565b6000602082840312156100c157600080fd5b81516001600160a01b03811681146100d857600080fd5b9392505050565b60805161055d61010060003960008181609901526101cd015261055d6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a36600461033b565b61010a565b005b61007f61008f366004610374565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f236600461033b565b610234565b61007f6101053660046103c7565b610288565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050505050565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f2839709060240161015a565b6040517f1ea9470200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631ea94702906102de908690869086906004016104cb565b600060405180830381600087803b1580156102f857600080fd5b505af115801561030c573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461033857600080fd5b50565b6000806040838503121561034e57600080fd5b823561035981610316565b9150602083013561036981610316565b809150509250929050565b60006020828403121561038657600080fd5b813561039181610316565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156103dd57600080fd5b84356103e881610316565b935060208501359250604085013560ff8116811461040557600080fd5b9150606085013567ffffffffffffffff8082111561042257600080fd5b818701915087601f83011261043657600080fd5b81358181111561044857610448610398565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561048e5761048e610398565b816040528281528a60208487010111156104a757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b8381526000602060ff85168184015260606040840152835180606085015260005b81811015610508578581018301518582016080015282016104ec565b8181111561051a576000608083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016080019594505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x65D CODESIZE SUB DUP1 PUSH2 0x65D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xAF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x9E 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 0x44656661756C74416461707465723A20757064617465722063616E6E6F742062 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x652061646472657373283029 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0xDF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x55D PUSH2 0x100 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x99 ADD MSTORE PUSH2 0x1CD ADD MSTORE PUSH2 0x55D 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x288 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 JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP 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 PUSH2 0x15A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x1EA94702 SWAP1 PUSH2 0x2DE SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x359 DUP2 PUSH2 0x316 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x369 DUP2 PUSH2 0x316 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x391 DUP2 PUSH2 0x316 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3E8 DUP2 PUSH2 0x316 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x422 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x448 JUMPI PUSH2 0x448 PUSH2 0x398 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 0x48E JUMPI PUSH2 0x48E PUSH2 0x398 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x4A7 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xFF DUP6 AND DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x508 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x4EC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"379:1307:41:-:0;;;694:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;747:27:41;;739:84;;;;-1:-1:-1;;;739:84:41;;511:2:61;739:84:41;;;493:21:61;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:61;;;633:42;692:19;;739:84:41;;;;;;;;-1:-1:-1;;;;;833:28:41;;;379:1307;;14:290:61;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;309:408::-;379:1307:41;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@changeProxyAdmin_9139":{"entryPoint":564,"id":9139,"parameterSlots":2,"returnSlots":0},"@finalizeUpgrade_9101":{"entryPoint":266,"id":9101,"parameterSlots":2,"returnSlots":0},"@initiateUpgrade_9085":{"entryPoint":400,"id":9085,"parameterSlots":1,"returnSlots":0},"@proxyUpdater_9050":{"entryPoint":null,"id":9050,"parameterSlots":0,"returnSlots":0},"@setStorage_9123":{"entryPoint":648,"id":9123,"parameterSlots":4,"returnSlots":0},"abi_decode_tuple_t_address_payable":{"entryPoint":884,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_address":{"entryPoint":827,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr":{"entryPoint":967,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1227,"id":null,"parameterSlots":4,"returnSlots":1},"panic_error_0x41":{"entryPoint":920,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address_payable":{"entryPoint":790,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3464:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"67:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"154:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"163:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"166:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"156:6:61"},"nodeType":"YulFunctionCall","src":"156:12:61"},"nodeType":"YulExpressionStatement","src":"156:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"90:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"101:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"108:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"97:3:61"},"nodeType":"YulFunctionCall","src":"97:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"87:2:61"},"nodeType":"YulFunctionCall","src":"87:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"80:6:61"},"nodeType":"YulFunctionCall","src":"80:73:61"},"nodeType":"YulIf","src":"77:93:61"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"56:5:61","type":""}],"src":"14:162:61"},{"body":{"nodeType":"YulBlock","src":"276:317:61","statements":[{"body":{"nodeType":"YulBlock","src":"322:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"331:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"334:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"324:6:61"},"nodeType":"YulFunctionCall","src":"324:12:61"},"nodeType":"YulExpressionStatement","src":"324:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"297:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"306:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"293:3:61"},"nodeType":"YulFunctionCall","src":"293:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"318:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"289:3:61"},"nodeType":"YulFunctionCall","src":"289:32:61"},"nodeType":"YulIf","src":"286:52:61"},{"nodeType":"YulVariableDeclaration","src":"347:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"360:12:61"},"nodeType":"YulFunctionCall","src":"360:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"351:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"425:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"392:32:61"},"nodeType":"YulFunctionCall","src":"392:39:61"},"nodeType":"YulExpressionStatement","src":"392:39:61"},{"nodeType":"YulAssignment","src":"440:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"450:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"440:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"464:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"496:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"507:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"492:3:61"},"nodeType":"YulFunctionCall","src":"492:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"479:12:61"},"nodeType":"YulFunctionCall","src":"479:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"468:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"553:7:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"520:32:61"},"nodeType":"YulFunctionCall","src":"520:41:61"},"nodeType":"YulExpressionStatement","src":"520:41:61"},{"nodeType":"YulAssignment","src":"570:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"580:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"570:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"234:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"245:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"257:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"265:6:61","type":""}],"src":"181:412:61"},{"body":{"nodeType":"YulBlock","src":"676:185:61","statements":[{"body":{"nodeType":"YulBlock","src":"722:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:61"},"nodeType":"YulFunctionCall","src":"724:12:61"},"nodeType":"YulExpressionStatement","src":"724:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"697:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"706:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"693:3:61"},"nodeType":"YulFunctionCall","src":"693:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"718:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"689:3:61"},"nodeType":"YulFunctionCall","src":"689:32:61"},"nodeType":"YulIf","src":"686:52:61"},{"nodeType":"YulVariableDeclaration","src":"747:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"773:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"760:12:61"},"nodeType":"YulFunctionCall","src":"760:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"751:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"825:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"792:32:61"},"nodeType":"YulFunctionCall","src":"792:39:61"},"nodeType":"YulExpressionStatement","src":"792:39:61"},{"nodeType":"YulAssignment","src":"840:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"850:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"840:6:61"}]}]},"name":"abi_decode_tuple_t_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"642:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"653:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"665:6:61","type":""}],"src":"598:263:61"},{"body":{"nodeType":"YulBlock","src":"967:125:61","statements":[{"nodeType":"YulAssignment","src":"977:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:61"},"nodeType":"YulFunctionCall","src":"985:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1019:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1034:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1042:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1030:3:61"},"nodeType":"YulFunctionCall","src":"1030:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1012:6:61"},"nodeType":"YulFunctionCall","src":"1012:74:61"},"nodeType":"YulExpressionStatement","src":"1012:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"936:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"947:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"958:4:61","type":""}],"src":"866:226:61"},{"body":{"nodeType":"YulBlock","src":"1129:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1139:6:61"},"nodeType":"YulFunctionCall","src":"1139:88:61"},"nodeType":"YulExpressionStatement","src":"1139:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1243:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1246:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1236:6:61"},"nodeType":"YulFunctionCall","src":"1236:15:61"},"nodeType":"YulExpressionStatement","src":"1236:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1270:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1260:6:61"},"nodeType":"YulFunctionCall","src":"1260:15:61"},"nodeType":"YulExpressionStatement","src":"1260:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1097:184:61"},{"body":{"nodeType":"YulBlock","src":"1422:1229:61","statements":[{"body":{"nodeType":"YulBlock","src":"1469:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1478:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1481:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1471:6:61"},"nodeType":"YulFunctionCall","src":"1471:12:61"},"nodeType":"YulExpressionStatement","src":"1471:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1443:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1452:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1439:3:61"},"nodeType":"YulFunctionCall","src":"1439:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1464:3:61","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1435:3:61"},"nodeType":"YulFunctionCall","src":"1435:33:61"},"nodeType":"YulIf","src":"1432:53:61"},{"nodeType":"YulVariableDeclaration","src":"1494:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1520:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1507:12:61"},"nodeType":"YulFunctionCall","src":"1507:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1498:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1572:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"1539:32:61"},"nodeType":"YulFunctionCall","src":"1539:39:61"},"nodeType":"YulExpressionStatement","src":"1539:39:61"},{"nodeType":"YulAssignment","src":"1587:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"1597:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1587:6:61"}]},{"nodeType":"YulAssignment","src":"1611:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1638:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1649:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1634:3:61"},"nodeType":"YulFunctionCall","src":"1634:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1621:12:61"},"nodeType":"YulFunctionCall","src":"1621:32:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1611:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1662:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1694:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1705:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1690:3:61"},"nodeType":"YulFunctionCall","src":"1690:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1677:12:61"},"nodeType":"YulFunctionCall","src":"1677:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1666:7:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1761:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1770:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1773:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1763:6:61"},"nodeType":"YulFunctionCall","src":"1763:12:61"},"nodeType":"YulExpressionStatement","src":"1763:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1731:7:61"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1744:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"1753:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1740:3:61"},"nodeType":"YulFunctionCall","src":"1740:18:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1728:2:61"},"nodeType":"YulFunctionCall","src":"1728:31:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1721:6:61"},"nodeType":"YulFunctionCall","src":"1721:39:61"},"nodeType":"YulIf","src":"1718:59:61"},{"nodeType":"YulAssignment","src":"1786:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1796:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1786:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1812:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1843:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1854:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1839:3:61"},"nodeType":"YulFunctionCall","src":"1839:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1826:12:61"},"nodeType":"YulFunctionCall","src":"1826:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1816:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1867:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1877:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1871:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1922:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1934:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1924:6:61"},"nodeType":"YulFunctionCall","src":"1924:12:61"},"nodeType":"YulExpressionStatement","src":"1924:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1910:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1918:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:61"},"nodeType":"YulFunctionCall","src":"1907:14:61"},"nodeType":"YulIf","src":"1904:34:61"},{"nodeType":"YulVariableDeclaration","src":"1947:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1961:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"1972:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1957:3:61"},"nodeType":"YulFunctionCall","src":"1957:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1951:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2027:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2036:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2039:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2029:6:61"},"nodeType":"YulFunctionCall","src":"2029:12:61"},"nodeType":"YulExpressionStatement","src":"2029:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2006:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2010:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:61"},"nodeType":"YulFunctionCall","src":"2002:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2017:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1998:3:61"},"nodeType":"YulFunctionCall","src":"1998:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1991:6:61"},"nodeType":"YulFunctionCall","src":"1991:35:61"},"nodeType":"YulIf","src":"1988:55:61"},{"nodeType":"YulVariableDeclaration","src":"2052:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2075:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2062:12:61"},"nodeType":"YulFunctionCall","src":"2062:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2056:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2101:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2103:16:61"},"nodeType":"YulFunctionCall","src":"2103:18:61"},"nodeType":"YulExpressionStatement","src":"2103:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2093:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2097:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2090:2:61"},"nodeType":"YulFunctionCall","src":"2090:10:61"},"nodeType":"YulIf","src":"2087:36:61"},{"nodeType":"YulVariableDeclaration","src":"2132:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2142:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2136:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2217:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2237:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2231:5:61"},"nodeType":"YulFunctionCall","src":"2231:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2221:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2249:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2271:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2295:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2299:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2291:3:61"},"nodeType":"YulFunctionCall","src":"2291:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2306:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2287:3:61"},"nodeType":"YulFunctionCall","src":"2287:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"2311:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2283:3:61"},"nodeType":"YulFunctionCall","src":"2283:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2316:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2279:3:61"},"nodeType":"YulFunctionCall","src":"2279:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:61"},"nodeType":"YulFunctionCall","src":"2267:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2253:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2379:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2381:16:61"},"nodeType":"YulFunctionCall","src":"2381:18:61"},"nodeType":"YulExpressionStatement","src":"2381:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2338:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2350:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2335:2:61"},"nodeType":"YulFunctionCall","src":"2335:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2358:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2370:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2355:2:61"},"nodeType":"YulFunctionCall","src":"2355:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2332:2:61"},"nodeType":"YulFunctionCall","src":"2332:46:61"},"nodeType":"YulIf","src":"2329:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2417:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2421:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2410:6:61"},"nodeType":"YulFunctionCall","src":"2410:22:61"},"nodeType":"YulExpressionStatement","src":"2410:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2448:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2456:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2441:6:61"},"nodeType":"YulFunctionCall","src":"2441:18:61"},"nodeType":"YulExpressionStatement","src":"2441:18:61"},{"body":{"nodeType":"YulBlock","src":"2505:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2517:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2507:6:61"},"nodeType":"YulFunctionCall","src":"2507:12:61"},"nodeType":"YulExpressionStatement","src":"2507:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2482:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2486:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2478:3:61"},"nodeType":"YulFunctionCall","src":"2478:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"2491:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2474:3:61"},"nodeType":"YulFunctionCall","src":"2474:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2496:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2471:2:61"},"nodeType":"YulFunctionCall","src":"2471:33:61"},"nodeType":"YulIf","src":"2468:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2547:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2555:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2543:3:61"},"nodeType":"YulFunctionCall","src":"2543:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2564:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2568:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2560:3:61"},"nodeType":"YulFunctionCall","src":"2560:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2573:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2530:12:61"},"nodeType":"YulFunctionCall","src":"2530:46:61"},"nodeType":"YulExpressionStatement","src":"2530:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2600:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2608:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2596:3:61"},"nodeType":"YulFunctionCall","src":"2596:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"2613:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:61"},"nodeType":"YulFunctionCall","src":"2592:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"2618:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2585:6:61"},"nodeType":"YulFunctionCall","src":"2585:35:61"},"nodeType":"YulExpressionStatement","src":"2585:35:61"},{"nodeType":"YulAssignment","src":"2629:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2639:6:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2629:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1364:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1375:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1387:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1395:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1403:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1411:6:61","type":""}],"src":"1286:1365:61"},{"body":{"nodeType":"YulBlock","src":"2827:635:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2844:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"2855:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2837:6:61"},"nodeType":"YulFunctionCall","src":"2837:25:61"},"nodeType":"YulExpressionStatement","src":"2837:25:61"},{"nodeType":"YulVariableDeclaration","src":"2871:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2881:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2875:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2903:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2914:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2899:3:61"},"nodeType":"YulFunctionCall","src":"2899:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2923:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2931:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2919:3:61"},"nodeType":"YulFunctionCall","src":"2919:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2892:6:61"},"nodeType":"YulFunctionCall","src":"2892:45:61"},"nodeType":"YulExpressionStatement","src":"2892:45:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2957:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2968:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2953:3:61"},"nodeType":"YulFunctionCall","src":"2953:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2973:2:61","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2946:6:61"},"nodeType":"YulFunctionCall","src":"2946:30:61"},"nodeType":"YulExpressionStatement","src":"2946:30:61"},{"nodeType":"YulVariableDeclaration","src":"2985:27:61","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3005:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2999:5:61"},"nodeType":"YulFunctionCall","src":"2999:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2989:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3032:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3043:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3028:3:61"},"nodeType":"YulFunctionCall","src":"3028:18:61"},{"name":"length","nodeType":"YulIdentifier","src":"3048:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3021:6:61"},"nodeType":"YulFunctionCall","src":"3021:34:61"},"nodeType":"YulExpressionStatement","src":"3021:34:61"},{"nodeType":"YulVariableDeclaration","src":"3064:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3073:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3068:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3133:91:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3162:9:61"},{"name":"i","nodeType":"YulIdentifier","src":"3173:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3158:3:61"},"nodeType":"YulFunctionCall","src":"3158:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"3177:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3154:3:61"},"nodeType":"YulFunctionCall","src":"3154:27:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3197:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"3205:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3193:3:61"},"nodeType":"YulFunctionCall","src":"3193:14:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3209:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3189:3:61"},"nodeType":"YulFunctionCall","src":"3189:23:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3183:5:61"},"nodeType":"YulFunctionCall","src":"3183:30:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3147:6:61"},"nodeType":"YulFunctionCall","src":"3147:67:61"},"nodeType":"YulExpressionStatement","src":"3147:67:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3094:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3097:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3091:2:61"},"nodeType":"YulFunctionCall","src":"3091:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3105:19:61","statements":[{"nodeType":"YulAssignment","src":"3107:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3116:1:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3119:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3112:3:61"},"nodeType":"YulFunctionCall","src":"3112:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3107:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3087:3:61","statements":[]},"src":"3083:141:61"},{"body":{"nodeType":"YulBlock","src":"3258:67:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3287:9:61"},{"name":"length","nodeType":"YulIdentifier","src":"3298:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3283:3:61"},"nodeType":"YulFunctionCall","src":"3283:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"3307:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3279:3:61"},"nodeType":"YulFunctionCall","src":"3279:32:61"},{"kind":"number","nodeType":"YulLiteral","src":"3313:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3272:6:61"},"nodeType":"YulFunctionCall","src":"3272:43:61"},"nodeType":"YulExpressionStatement","src":"3272:43:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3239:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3242:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3236:2:61"},"nodeType":"YulFunctionCall","src":"3236:13:61"},"nodeType":"YulIf","src":"3233:92:61"},{"nodeType":"YulAssignment","src":"3334:122:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3350:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3369:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3377:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3365:3:61"},"nodeType":"YulFunctionCall","src":"3365:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3382:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3361:3:61"},"nodeType":"YulFunctionCall","src":"3361:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3346:3:61"},"nodeType":"YulFunctionCall","src":"3346:104:61"},{"kind":"number","nodeType":"YulLiteral","src":"3452:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3342:3:61"},"nodeType":"YulFunctionCall","src":"3342:114:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3334:4:61"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2780:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2791:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2799:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2807:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2818:4:61","type":""}],"src":"2656:806:61"}]},"contents":"{\n    { }\n    function validator_revert_address_payable(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_payablet_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_payable(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address_payable(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(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 panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(eq(value_1, and(value_1, 0xff))) { revert(0, 0) }\n        value2 := value_1\n        let offset := calldataload(add(headStart, 96))\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        value3 := memPtr\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        let _1 := 32\n        mstore(add(headStart, _1), and(value1, 0xff))\n        mstore(add(headStart, 64), 96)\n        let length := mload(value2)\n        mstore(add(headStart, 96), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 128), mload(add(add(value2, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 128), 0)\n        }\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9050":[{"length":32,"start":153},{"length":32,"start":461}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a36600461033b565b61010a565b005b61007f61008f366004610374565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f236600461033b565b610234565b61007f6101053660046103c7565b610288565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050505050565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f2839709060240161015a565b6040517f1ea9470200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631ea94702906102de908690869086906004016104cb565b600060405180830381600087803b1580156102f857600080fd5b505af115801561030c573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461033857600080fd5b50565b6000806040838503121561034e57600080fd5b823561035981610316565b9150602083013561036981610316565b809150509250929050565b60006020828403121561038657600080fd5b813561039181610316565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156103dd57600080fd5b84356103e881610316565b935060208501359250604085013560ff8116811461040557600080fd5b9150606085013567ffffffffffffffff8082111561042257600080fd5b818701915087601f83011261043657600080fd5b81358181111561044857610448610398565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561048e5761048e610398565b816040528281528a60208487010111156104a757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b8381526000602060ff85168184015260606040840152835180606085015260005b81811015610508578581018301518582016080015282016104ec565b8181111561051a576000608083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016080019594505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x33B JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x288 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 JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP 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 PUSH2 0x15A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x1EA94702 SWAP1 PUSH2 0x2DE SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x359 DUP2 PUSH2 0x316 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x369 DUP2 PUSH2 0x316 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x391 DUP2 PUSH2 0x316 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3E8 DUP2 PUSH2 0x316 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x422 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x448 JUMPI PUSH2 0x448 PUSH2 0x398 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 0x48E JUMPI PUSH2 0x48E PUSH2 0x398 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x4A7 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xFF DUP6 AND DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x508 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x4EC JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"379:1307:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1090:140;;;;;;:::i;:::-;;:::i;:::-;;923:112;;;;;;:::i;:::-;;:::i;568:37::-;;;;;;;;1042:42:61;1030:55;;;1012:74;;1000:2;985:18;568:37:41;;;;;;;1553:131;;;;;;:::i;:::-;;:::i;1285:213::-;;;;;;:::i;:::-;;:::i;1090:140::-;1183:40;;;;;:23;1030:55:61;;;1183:40:41;;;1012:74:61;1183:23:41;;;;;985:18:61;;1183:40:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1090:140;;:::o;923:112::-;991:37;;;;;:23;1015:12;1030:55:61;;991:37:41;;;1012:74:61;991:23:41;;;;;985:18:61;;991:37:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:112;:::o;1553:131::-;1641:36;;;;;:25;1030:55:61;;;1641:36:41;;;1012:74:61;1641:25:41;;;;;985:18:61;;1641:36:41;866:226:61;1285:213:41;1436:55;;;;;:32;;;;;;:55;;1469:4;;1475:7;;1484:6;;1436:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1285:213;;;;:::o;14:162:61:-;108:42;101:5;97:54;90:5;87:65;77:93;;166:1;163;156:12;77:93;14:162;:::o;181:412::-;257:6;265;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;373:9;360:23;392:39;425:5;392:39;:::i;:::-;450:5;-1:-1:-1;507:2:61;492:18;;479:32;520:41;479:32;520:41;:::i;:::-;580:7;570:17;;;181:412;;;;;:::o;598:263::-;665:6;718:2;706:9;697:7;693:23;689:32;686:52;;;734:1;731;724:12;686:52;773:9;760:23;792:39;825:5;792:39;:::i;:::-;850:5;598:263;-1:-1:-1;;;598:263:61:o;1097:184::-;1149:77;1146:1;1139:88;1246:4;1243:1;1236:15;1270:4;1267:1;1260:15;1286:1365;1387:6;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1520:9;1507:23;1539:39;1572:5;1539:39;:::i;:::-;1597:5;-1:-1:-1;1649:2:61;1634:18;;1621:32;;-1:-1:-1;1705:2:61;1690:18;;1677:32;1753:4;1740:18;;1728:31;;1718:59;;1773:1;1770;1763:12;1718:59;1796:7;-1:-1:-1;1854:2:61;1839:18;;1826:32;1877:18;1907:14;;;1904:34;;;1934:1;1931;1924:12;1904:34;1972:6;1961:9;1957:22;1947:32;;2017:7;2010:4;2006:2;2002:13;1998:27;1988:55;;2039:1;2036;2029:12;1988:55;2075:2;2062:16;2097:2;2093;2090:10;2087:36;;;2103:18;;:::i;:::-;2237:2;2231:9;2299:4;2291:13;;2142:66;2287:22;;;2311:2;2283:31;2279:40;2267:53;;;2335:18;;;2355:22;;;2332:46;2329:72;;;2381:18;;:::i;:::-;2421:10;2417:2;2410:22;2456:2;2448:6;2441:18;2496:7;2491:2;2486;2482;2478:11;2474:20;2471:33;2468:53;;;2517:1;2514;2507:12;2468:53;2573:2;2568;2564;2560:11;2555:2;2547:6;2543:15;2530:46;2618:1;2613:2;2608;2600:6;2596:15;2592:24;2585:35;2639:6;2629:16;;;;;;;1286:1365;;;;;;;:::o;2656:806::-;2855:6;2844:9;2837:25;2818:4;2881:2;2931:4;2923:6;2919:17;2914:2;2903:9;2899:18;2892:45;2973:2;2968;2957:9;2953:18;2946:30;3005:6;2999:13;3048:6;3043:2;3032:9;3028:18;3021:34;3073:1;3083:141;3097:6;3094:1;3091:13;3083:141;;;3193:14;;;3189:23;;3183:30;3158:17;;;3177:3;3154:27;3147:67;3112:10;;3083:141;;;3242:6;3239:1;3236:13;3233:92;;;3313:1;3307:3;3298:6;3287:9;3283:22;3279:32;3272:43;3233:92;-1:-1:-1;3377:2:61;3365:15;3382:66;3361:88;3346:104;;;;3452:3;3342:114;;2656:806;-1:-1:-1;;;;;2656:806:61:o"},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","finalizeUpgrade(address,address)":"192957c8","initiateUpgrade(address)":"479aa927","proxyUpdater()":"7bafa3c7","setStorage(address,bytes32,uint8,bytes)":"9bc6ee9a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxyUpdater\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"params\":{\"_newAdmin\":\"Address of the new admin.\",\"_proxy\":\"Address of the proxy.\"}},\"constructor\":{\"params\":{\"_proxyUpdater\":\"Address of the ProxyUpdater contract.\"}},\"finalizeUpgrade(address,address)\":{\"params\":{\"_implementation\":\"Address of the proxy's final implementation.\",\"_proxy\":\"Address of the proxy.\"}},\"initiateUpgrade(address)\":{\"params\":{\"_proxy\":\"Address of the proxy.\"}},\"setStorage(address,bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_proxy\":\"Address of the proxy to modify.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] (inclusive).\"}}},\"title\":\"DefaultAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"notice\":\"Changes the admin of the proxy. Note that this function is not triggered during a deployment. Instead, it's only triggered if transferring ownership of the UUPS proxy away from the ChugSplashManager, which occurs outside of the deployment process.\"},\"finalizeUpgrade(address,address)\":{\"notice\":\"Complete a deployment or upgrade of a proxy.\"},\"initiateUpgrade(address)\":{\"notice\":\"Initiate a deployment or upgrade of a proxy.\"},\"proxyUpdater()\":{\"notice\":\"Address of the ProxyUpdater contract that will be set as the proxy's implementation during the deployment.\"},\"setStorage(address,bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset.\"}},\"notice\":\"Adapter for the default EIP-1967 proxy used by ChugSplash.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/DefaultAdapter.sol\":\"DefaultAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"contracts/adapters/DefaultAdapter.sol\":{\"keccak256\":\"0x82bcdb7b93a5248a9d56aab0dc1e20174e0dae52845059a1a3e23da09215634f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ea61bef15407aa6d3ce141f4b2e189ea160f6b755f9f966197d0b15e94a2bba\",\"dweb:/ipfs/QmbLmeYeduwwxvj85qnQczM29biKEuSC3EntHowx84qdjH\"]},\"contracts/interfaces/IProxyAdapter.sol\":{\"keccak256\":\"0x48f5f46c6fe6e36f52d861783e8bba551d312a41cd0abee9d256314e6b720ded\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://081672af4de6cbd120e7cda0ffee02da555550ec3858980bc76069c0d2c4e55c\",\"dweb:/ipfs/QmSNFy1mHdxSbKUvP5DJt8euJt1Gun356dqkfZHAdmUf2W\"]},\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/adapters/OZTransparentAdapter.sol":{"OZTransparentAdapter":{"abi":[{"inputs":[{"internalType":"address","name":"_proxyUpdater","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxyUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9175":{"entryPoint":null,"id":9175,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":181,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_db0a450c8c901d4ed47b3408d68b5957390ad162d6d6d30d022a03a1be98e041__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:725:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"},{"body":{"nodeType":"YulBlock","src":"483:240:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:61"},"nodeType":"YulFunctionCall","src":"493:21:61"},"nodeType":"YulExpressionStatement","src":"493:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:61"},"nodeType":"YulFunctionCall","src":"530:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:61","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:61"},"nodeType":"YulFunctionCall","src":"523:30:61"},"nodeType":"YulExpressionStatement","src":"523:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:61"},"nodeType":"YulFunctionCall","src":"569:18:61"},{"hexValue":"4f5a5472616e73706172656e74416461707465723a2075706461746572206361","kind":"string","nodeType":"YulLiteral","src":"589:34:61","type":"","value":"OZTransparentAdapter: updater ca"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:61"},"nodeType":"YulFunctionCall","src":"562:62:61"},"nodeType":"YulExpressionStatement","src":"562:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"644:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"655:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"640:3:61"},"nodeType":"YulFunctionCall","src":"640:18:61"},{"hexValue":"6e6e6f742062652061646472657373283029","kind":"string","nodeType":"YulLiteral","src":"660:20:61","type":"","value":"nnot be address(0)"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"633:6:61"},"nodeType":"YulFunctionCall","src":"633:48:61"},"nodeType":"YulExpressionStatement","src":"633:48:61"},{"nodeType":"YulAssignment","src":"690:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"702:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"713:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"698:3:61"},"nodeType":"YulFunctionCall","src":"698:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"690:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_db0a450c8c901d4ed47b3408d68b5957390ad162d6d6d30d022a03a1be98e041__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:61","type":""}],"src":"309:414:61"}]},"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_db0a450c8c901d4ed47b3408d68b5957390ad162d6d6d30d022a03a1be98e041__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"OZTransparentAdapter: updater ca\")\n        mstore(add(headStart, 96), \"nnot be address(0)\")\n        tail := add(headStart, 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b506040516108ab3803806108ab83398101604081905261002f916100b5565b6001600160a01b0381166100a45760405162461bcd60e51b815260206004820152603260248201527f4f5a5472616e73706172656e74416461707465723a20757064617465722063616044820152716e6e6f74206265206164647265737328302960701b606482015260840160405180910390fd5b6001600160a01b03166080526100e5565b6000602082840312156100c757600080fd5b81516001600160a01b03811681146100de57600080fd5b9392505050565b60805161079e61010d600039600081816099015281816101cd015261034f015261079e6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a366004610545565b61010a565b005b61007f61008f36600461057e565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f2366004610545565b610234565b61007f6101053660046105d1565b610288565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050505050565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f2839709060240161015a565b60008473ffffffffffffffffffffffffffffffffffffffff163b11610334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f5a5472616e73706172656e74416461707465723a20696e76616c696420707260448201527f6f7879000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000085858560405160240161038393929190610713565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1ea9470200000000000000000000000000000000000000000000000000000000179052516103ea92919060240161073e565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4f1ef286000000000000000000000000000000000000000000000000000000001790525161044d9190610775565b6000604051808303816000865af19150503d806000811461048a576040519150601f19603f3d011682016040523d82523d6000602084013e61048f565b606091505b505090508061022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f5a5472616e73706172656e74416461707465723a2063616c6c20746f20736560448201527f742073746f72616765206661696c656400000000000000000000000000000000606482015260840161032b565b73ffffffffffffffffffffffffffffffffffffffff8116811461054257600080fd5b50565b6000806040838503121561055857600080fd5b823561056381610520565b9150602083013561057381610520565b809150509250929050565b60006020828403121561059057600080fd5b813561059b81610520565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156105e757600080fd5b84356105f281610520565b935060208501359250604085013560ff8116811461060f57600080fd5b9150606085013567ffffffffffffffff8082111561062c57600080fd5b818701915087601f83011261064057600080fd5b813581811115610652576106526105a2565b604051601f8201601f19908116603f0116810190838211818310171561067a5761067a6105a2565b816040528281528a602084870101111561069357600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60005b838110156106d25781810151838201526020016106ba565b838111156106e1576000848401525b50505050565b600081518084526106ff8160208601602086016106b7565b601f01601f19169290920160200192915050565b83815260ff8316602082015260606040820152600061073560608301846106e7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061076d60408301846106e7565b949350505050565b600082516107878184602087016106b7565b919091019291505056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x8AB CODESIZE SUB DUP1 PUSH2 0x8AB DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xB5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A5472616E73706172656E74416461707465723A2075706461746572206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x6E6E6F742062652061646472657373283029 PUSH1 0x70 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x79E PUSH2 0x10D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x99 ADD MSTORE DUP2 DUP2 PUSH2 0x1CD ADD MSTORE PUSH2 0x34F ADD MSTORE PUSH2 0x79E 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x545 JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x57E JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x545 JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x5D1 JUMP JUMPDEST PUSH2 0x288 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 JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP 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 PUSH2 0x15A JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A5472616E73706172656E74416461707465723A20696E76616C6964207072 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F78790000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x383 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x713 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x3EA SWAP3 SWAP2 SWAP1 PUSH1 0x24 ADD PUSH2 0x73E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4F1EF28600000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x775 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 0x48A 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 0x48F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x22D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A5472616E73706172656E74416461707465723A2063616C6C20746F207365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x742073746F72616765206661696C656400000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x563 DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x573 DUP2 PUSH2 0x520 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x59B DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5F2 DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x640 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x652 JUMPI PUSH2 0x652 PUSH2 0x5A2 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 0x67A JUMPI PUSH2 0x67A PUSH2 0x5A2 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x693 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x6BA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x6FF DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x735 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6E7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x76D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x6E7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x787 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x6B7 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"385:1901:42:-:0;;;721:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;774:27:42;;766:90;;;;-1:-1:-1;;;766:90:42;;511:2:61;766:90:42;;;493:21:61;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:61;;;633:48;698:19;;766:90:42;;;;;;;;-1:-1:-1;;;;;866:28:42;;;385:1901;;14:290:61;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;309:414::-;385:1901:42;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@changeProxyAdmin_9270":{"entryPoint":564,"id":9270,"parameterSlots":2,"returnSlots":0},"@finalizeUpgrade_9205":{"entryPoint":266,"id":9205,"parameterSlots":2,"returnSlots":0},"@initiateUpgrade_9189":{"entryPoint":400,"id":9189,"parameterSlots":1,"returnSlots":0},"@proxyUpdater_9154":{"entryPoint":null,"id":9154,"parameterSlots":0,"returnSlots":0},"@setStorage_9254":{"entryPoint":648,"id":9254,"parameterSlots":4,"returnSlots":0},"abi_decode_tuple_t_address_payable":{"entryPoint":1406,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_address":{"entryPoint":1349,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr":{"entryPoint":1489,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_bytes":{"entryPoint":1767,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1909,"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_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1854,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1811,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_stringliteral_11ca7cb660bf02687d0545cfd1a2828b92119ad5155178ad4adc14f51a7fb8ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cae871cacd4c7181726c0b80eec7dc999e5710b3f992000c3f11884209b728f7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":1719,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":1442,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address_payable":{"entryPoint":1312,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5050:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"67:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"154:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"163:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"166:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"156:6:61"},"nodeType":"YulFunctionCall","src":"156:12:61"},"nodeType":"YulExpressionStatement","src":"156:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"90:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"101:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"108:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"97:3:61"},"nodeType":"YulFunctionCall","src":"97:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"87:2:61"},"nodeType":"YulFunctionCall","src":"87:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"80:6:61"},"nodeType":"YulFunctionCall","src":"80:73:61"},"nodeType":"YulIf","src":"77:93:61"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"56:5:61","type":""}],"src":"14:162:61"},{"body":{"nodeType":"YulBlock","src":"276:317:61","statements":[{"body":{"nodeType":"YulBlock","src":"322:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"331:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"334:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"324:6:61"},"nodeType":"YulFunctionCall","src":"324:12:61"},"nodeType":"YulExpressionStatement","src":"324:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"297:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"306:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"293:3:61"},"nodeType":"YulFunctionCall","src":"293:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"318:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"289:3:61"},"nodeType":"YulFunctionCall","src":"289:32:61"},"nodeType":"YulIf","src":"286:52:61"},{"nodeType":"YulVariableDeclaration","src":"347:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"360:12:61"},"nodeType":"YulFunctionCall","src":"360:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"351:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"425:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"392:32:61"},"nodeType":"YulFunctionCall","src":"392:39:61"},"nodeType":"YulExpressionStatement","src":"392:39:61"},{"nodeType":"YulAssignment","src":"440:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"450:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"440:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"464:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"496:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"507:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"492:3:61"},"nodeType":"YulFunctionCall","src":"492:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"479:12:61"},"nodeType":"YulFunctionCall","src":"479:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"468:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"553:7:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"520:32:61"},"nodeType":"YulFunctionCall","src":"520:41:61"},"nodeType":"YulExpressionStatement","src":"520:41:61"},{"nodeType":"YulAssignment","src":"570:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"580:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"570:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"234:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"245:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"257:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"265:6:61","type":""}],"src":"181:412:61"},{"body":{"nodeType":"YulBlock","src":"676:185:61","statements":[{"body":{"nodeType":"YulBlock","src":"722:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:61"},"nodeType":"YulFunctionCall","src":"724:12:61"},"nodeType":"YulExpressionStatement","src":"724:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"697:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"706:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"693:3:61"},"nodeType":"YulFunctionCall","src":"693:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"718:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"689:3:61"},"nodeType":"YulFunctionCall","src":"689:32:61"},"nodeType":"YulIf","src":"686:52:61"},{"nodeType":"YulVariableDeclaration","src":"747:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"773:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"760:12:61"},"nodeType":"YulFunctionCall","src":"760:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"751:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"825:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"792:32:61"},"nodeType":"YulFunctionCall","src":"792:39:61"},"nodeType":"YulExpressionStatement","src":"792:39:61"},{"nodeType":"YulAssignment","src":"840:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"850:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"840:6:61"}]}]},"name":"abi_decode_tuple_t_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"642:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"653:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"665:6:61","type":""}],"src":"598:263:61"},{"body":{"nodeType":"YulBlock","src":"967:125:61","statements":[{"nodeType":"YulAssignment","src":"977:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:61"},"nodeType":"YulFunctionCall","src":"985:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1019:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1034:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1042:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1030:3:61"},"nodeType":"YulFunctionCall","src":"1030:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1012:6:61"},"nodeType":"YulFunctionCall","src":"1012:74:61"},"nodeType":"YulExpressionStatement","src":"1012:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"936:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"947:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"958:4:61","type":""}],"src":"866:226:61"},{"body":{"nodeType":"YulBlock","src":"1129:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1139:6:61"},"nodeType":"YulFunctionCall","src":"1139:88:61"},"nodeType":"YulExpressionStatement","src":"1139:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1243:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1246:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1236:6:61"},"nodeType":"YulFunctionCall","src":"1236:15:61"},"nodeType":"YulExpressionStatement","src":"1236:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1270:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1260:6:61"},"nodeType":"YulFunctionCall","src":"1260:15:61"},"nodeType":"YulExpressionStatement","src":"1260:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1097:184:61"},{"body":{"nodeType":"YulBlock","src":"1422:1229:61","statements":[{"body":{"nodeType":"YulBlock","src":"1469:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1478:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1481:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1471:6:61"},"nodeType":"YulFunctionCall","src":"1471:12:61"},"nodeType":"YulExpressionStatement","src":"1471:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1443:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1452:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1439:3:61"},"nodeType":"YulFunctionCall","src":"1439:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1464:3:61","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1435:3:61"},"nodeType":"YulFunctionCall","src":"1435:33:61"},"nodeType":"YulIf","src":"1432:53:61"},{"nodeType":"YulVariableDeclaration","src":"1494:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1520:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1507:12:61"},"nodeType":"YulFunctionCall","src":"1507:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1498:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1572:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"1539:32:61"},"nodeType":"YulFunctionCall","src":"1539:39:61"},"nodeType":"YulExpressionStatement","src":"1539:39:61"},{"nodeType":"YulAssignment","src":"1587:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"1597:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1587:6:61"}]},{"nodeType":"YulAssignment","src":"1611:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1638:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1649:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1634:3:61"},"nodeType":"YulFunctionCall","src":"1634:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1621:12:61"},"nodeType":"YulFunctionCall","src":"1621:32:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1611:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1662:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1694:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1705:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1690:3:61"},"nodeType":"YulFunctionCall","src":"1690:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1677:12:61"},"nodeType":"YulFunctionCall","src":"1677:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1666:7:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1761:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1770:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1773:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1763:6:61"},"nodeType":"YulFunctionCall","src":"1763:12:61"},"nodeType":"YulExpressionStatement","src":"1763:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1731:7:61"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1744:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"1753:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1740:3:61"},"nodeType":"YulFunctionCall","src":"1740:18:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1728:2:61"},"nodeType":"YulFunctionCall","src":"1728:31:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1721:6:61"},"nodeType":"YulFunctionCall","src":"1721:39:61"},"nodeType":"YulIf","src":"1718:59:61"},{"nodeType":"YulAssignment","src":"1786:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1796:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1786:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1812:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1843:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1854:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1839:3:61"},"nodeType":"YulFunctionCall","src":"1839:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1826:12:61"},"nodeType":"YulFunctionCall","src":"1826:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1816:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1867:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1877:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1871:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1922:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1934:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1924:6:61"},"nodeType":"YulFunctionCall","src":"1924:12:61"},"nodeType":"YulExpressionStatement","src":"1924:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1910:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1918:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:61"},"nodeType":"YulFunctionCall","src":"1907:14:61"},"nodeType":"YulIf","src":"1904:34:61"},{"nodeType":"YulVariableDeclaration","src":"1947:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1961:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"1972:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1957:3:61"},"nodeType":"YulFunctionCall","src":"1957:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1951:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2027:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2036:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2039:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2029:6:61"},"nodeType":"YulFunctionCall","src":"2029:12:61"},"nodeType":"YulExpressionStatement","src":"2029:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2006:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2010:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:61"},"nodeType":"YulFunctionCall","src":"2002:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2017:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1998:3:61"},"nodeType":"YulFunctionCall","src":"1998:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1991:6:61"},"nodeType":"YulFunctionCall","src":"1991:35:61"},"nodeType":"YulIf","src":"1988:55:61"},{"nodeType":"YulVariableDeclaration","src":"2052:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2075:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2062:12:61"},"nodeType":"YulFunctionCall","src":"2062:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2056:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2101:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2103:16:61"},"nodeType":"YulFunctionCall","src":"2103:18:61"},"nodeType":"YulExpressionStatement","src":"2103:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2093:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2097:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2090:2:61"},"nodeType":"YulFunctionCall","src":"2090:10:61"},"nodeType":"YulIf","src":"2087:36:61"},{"nodeType":"YulVariableDeclaration","src":"2132:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2142:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2136:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2217:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2237:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2231:5:61"},"nodeType":"YulFunctionCall","src":"2231:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2221:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2249:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2271:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2295:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2299:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2291:3:61"},"nodeType":"YulFunctionCall","src":"2291:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2306:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2287:3:61"},"nodeType":"YulFunctionCall","src":"2287:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"2311:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2283:3:61"},"nodeType":"YulFunctionCall","src":"2283:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2316:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2279:3:61"},"nodeType":"YulFunctionCall","src":"2279:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:61"},"nodeType":"YulFunctionCall","src":"2267:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2253:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2379:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2381:16:61"},"nodeType":"YulFunctionCall","src":"2381:18:61"},"nodeType":"YulExpressionStatement","src":"2381:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2338:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2350:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2335:2:61"},"nodeType":"YulFunctionCall","src":"2335:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2358:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2370:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2355:2:61"},"nodeType":"YulFunctionCall","src":"2355:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2332:2:61"},"nodeType":"YulFunctionCall","src":"2332:46:61"},"nodeType":"YulIf","src":"2329:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2417:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2421:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2410:6:61"},"nodeType":"YulFunctionCall","src":"2410:22:61"},"nodeType":"YulExpressionStatement","src":"2410:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2448:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2456:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2441:6:61"},"nodeType":"YulFunctionCall","src":"2441:18:61"},"nodeType":"YulExpressionStatement","src":"2441:18:61"},{"body":{"nodeType":"YulBlock","src":"2505:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2517:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2507:6:61"},"nodeType":"YulFunctionCall","src":"2507:12:61"},"nodeType":"YulExpressionStatement","src":"2507:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2482:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2486:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2478:3:61"},"nodeType":"YulFunctionCall","src":"2478:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"2491:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2474:3:61"},"nodeType":"YulFunctionCall","src":"2474:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2496:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2471:2:61"},"nodeType":"YulFunctionCall","src":"2471:33:61"},"nodeType":"YulIf","src":"2468:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2547:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2555:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2543:3:61"},"nodeType":"YulFunctionCall","src":"2543:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2564:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2568:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2560:3:61"},"nodeType":"YulFunctionCall","src":"2560:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2573:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2530:12:61"},"nodeType":"YulFunctionCall","src":"2530:46:61"},"nodeType":"YulExpressionStatement","src":"2530:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2600:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2608:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2596:3:61"},"nodeType":"YulFunctionCall","src":"2596:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"2613:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:61"},"nodeType":"YulFunctionCall","src":"2592:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"2618:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2585:6:61"},"nodeType":"YulFunctionCall","src":"2585:35:61"},"nodeType":"YulExpressionStatement","src":"2585:35:61"},{"nodeType":"YulAssignment","src":"2629:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2639:6:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2629:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1364:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1375:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1387:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1395:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1403:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1411:6:61","type":""}],"src":"1286:1365:61"},{"body":{"nodeType":"YulBlock","src":"2830:225:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2847:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2858:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2840:6:61"},"nodeType":"YulFunctionCall","src":"2840:21:61"},"nodeType":"YulExpressionStatement","src":"2840:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2881:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2892:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2877:3:61"},"nodeType":"YulFunctionCall","src":"2877:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2897:2:61","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2870:6:61"},"nodeType":"YulFunctionCall","src":"2870:30:61"},"nodeType":"YulExpressionStatement","src":"2870:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2920:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2931:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2916:3:61"},"nodeType":"YulFunctionCall","src":"2916:18:61"},{"hexValue":"4f5a5472616e73706172656e74416461707465723a20696e76616c6964207072","kind":"string","nodeType":"YulLiteral","src":"2936:34:61","type":"","value":"OZTransparentAdapter: invalid pr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2909:6:61"},"nodeType":"YulFunctionCall","src":"2909:62:61"},"nodeType":"YulExpressionStatement","src":"2909:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2991:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3002:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2987:3:61"},"nodeType":"YulFunctionCall","src":"2987:18:61"},{"hexValue":"6f7879","kind":"string","nodeType":"YulLiteral","src":"3007:5:61","type":"","value":"oxy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2980:6:61"},"nodeType":"YulFunctionCall","src":"2980:33:61"},"nodeType":"YulExpressionStatement","src":"2980:33:61"},{"nodeType":"YulAssignment","src":"3022:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3034:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3045:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3030:3:61"},"nodeType":"YulFunctionCall","src":"3030:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3022:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_11ca7cb660bf02687d0545cfd1a2828b92119ad5155178ad4adc14f51a7fb8ad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2807:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2821:4:61","type":""}],"src":"2656:399:61"},{"body":{"nodeType":"YulBlock","src":"3113:205:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3123:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3132:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3127:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3192:63:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3217:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"3222:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3213:3:61"},"nodeType":"YulFunctionCall","src":"3213:11:61"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3236:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"3241:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3232:3:61"},"nodeType":"YulFunctionCall","src":"3232:11:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3226:5:61"},"nodeType":"YulFunctionCall","src":"3226:18:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3206:6:61"},"nodeType":"YulFunctionCall","src":"3206:39:61"},"nodeType":"YulExpressionStatement","src":"3206:39:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3153:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3156:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3150:2:61"},"nodeType":"YulFunctionCall","src":"3150:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3164:19:61","statements":[{"nodeType":"YulAssignment","src":"3166:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3175:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3178:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3171:3:61"},"nodeType":"YulFunctionCall","src":"3171:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3166:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3146:3:61","statements":[]},"src":"3142:113:61"},{"body":{"nodeType":"YulBlock","src":"3281:31:61","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3294:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"3299:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3290:3:61"},"nodeType":"YulFunctionCall","src":"3290:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"3308:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3283:6:61"},"nodeType":"YulFunctionCall","src":"3283:27:61"},"nodeType":"YulExpressionStatement","src":"3283:27:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3270:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3273:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3267:2:61"},"nodeType":"YulFunctionCall","src":"3267:13:61"},"nodeType":"YulIf","src":"3264:48:61"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3091:3:61","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3096:3:61","type":""},{"name":"length","nodeType":"YulTypedName","src":"3101:6:61","type":""}],"src":"3060:258:61"},{"body":{"nodeType":"YulBlock","src":"3372:267:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3382:26:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3402:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3396:5:61"},"nodeType":"YulFunctionCall","src":"3396:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3386:6:61","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3424:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"3429:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3417:6:61"},"nodeType":"YulFunctionCall","src":"3417:19:61"},"nodeType":"YulExpressionStatement","src":"3417:19:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3471:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3478:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3467:3:61"},"nodeType":"YulFunctionCall","src":"3467:16:61"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3489:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"3494:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3485:3:61"},"nodeType":"YulFunctionCall","src":"3485:14:61"},{"name":"length","nodeType":"YulIdentifier","src":"3501:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3445:21:61"},"nodeType":"YulFunctionCall","src":"3445:63:61"},"nodeType":"YulExpressionStatement","src":"3445:63:61"},{"nodeType":"YulAssignment","src":"3517:116:61","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3532:3:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3545:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3541:3:61"},"nodeType":"YulFunctionCall","src":"3541:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3558:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3537:3:61"},"nodeType":"YulFunctionCall","src":"3537:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3528:3:61"},"nodeType":"YulFunctionCall","src":"3528:98:61"},{"kind":"number","nodeType":"YulLiteral","src":"3628:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3524:3:61"},"nodeType":"YulFunctionCall","src":"3524:109:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3517:3:61"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3349:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3356:3:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3364:3:61","type":""}],"src":"3323:316:61"},{"body":{"nodeType":"YulBlock","src":"3815:195:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3832:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"3843:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3825:6:61"},"nodeType":"YulFunctionCall","src":"3825:25:61"},"nodeType":"YulExpressionStatement","src":"3825:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3870:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3881:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3866:3:61"},"nodeType":"YulFunctionCall","src":"3866:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3890:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3898:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3886:3:61"},"nodeType":"YulFunctionCall","src":"3886:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3859:6:61"},"nodeType":"YulFunctionCall","src":"3859:45:61"},"nodeType":"YulExpressionStatement","src":"3859:45:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3924:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3935:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3920:3:61"},"nodeType":"YulFunctionCall","src":"3920:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"3940:2:61","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3913:6:61"},"nodeType":"YulFunctionCall","src":"3913:30:61"},"nodeType":"YulExpressionStatement","src":"3913:30:61"},{"nodeType":"YulAssignment","src":"3952:52:61","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3977:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3989:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4000:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3985:3:61"},"nodeType":"YulFunctionCall","src":"3985:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"3960:16:61"},"nodeType":"YulFunctionCall","src":"3960:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3952:4:61"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3768:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3779:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3787:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3795:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3806:4:61","type":""}],"src":"3644:366:61"},{"body":{"nodeType":"YulBlock","src":"4162:190:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4179:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4194:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4202:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4190:3:61"},"nodeType":"YulFunctionCall","src":"4190:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4172:6:61"},"nodeType":"YulFunctionCall","src":"4172:74:61"},"nodeType":"YulExpressionStatement","src":"4172:74:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4266:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4277:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4262:3:61"},"nodeType":"YulFunctionCall","src":"4262:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"4282:2:61","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4255:6:61"},"nodeType":"YulFunctionCall","src":"4255:30:61"},"nodeType":"YulExpressionStatement","src":"4255:30:61"},{"nodeType":"YulAssignment","src":"4294:52:61","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4319:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4331:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4342:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4327:3:61"},"nodeType":"YulFunctionCall","src":"4327:18:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4302:16:61"},"nodeType":"YulFunctionCall","src":"4302:44:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4294:4:61"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4123:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4134:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4142:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4153:4:61","type":""}],"src":"4015:337:61"},{"body":{"nodeType":"YulBlock","src":"4494:137:61","statements":[{"nodeType":"YulVariableDeclaration","src":"4504:27:61","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4524:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4518:5:61"},"nodeType":"YulFunctionCall","src":"4518:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4508:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4566:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4574:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4562:3:61"},"nodeType":"YulFunctionCall","src":"4562:17:61"},{"name":"pos","nodeType":"YulIdentifier","src":"4581:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"4586:6:61"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4540:21:61"},"nodeType":"YulFunctionCall","src":"4540:53:61"},"nodeType":"YulExpressionStatement","src":"4540:53:61"},{"nodeType":"YulAssignment","src":"4602:23:61","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4613:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"4618:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4609:3:61"},"nodeType":"YulFunctionCall","src":"4609:16:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4602:3:61"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4470:3:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4475:6:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4486:3:61","type":""}],"src":"4357:274:61"},{"body":{"nodeType":"YulBlock","src":"4810:238:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4827:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4838:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4820:6:61"},"nodeType":"YulFunctionCall","src":"4820:21:61"},"nodeType":"YulExpressionStatement","src":"4820:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4861:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4872:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4857:3:61"},"nodeType":"YulFunctionCall","src":"4857:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"4877:2:61","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4850:6:61"},"nodeType":"YulFunctionCall","src":"4850:30:61"},"nodeType":"YulExpressionStatement","src":"4850:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4900:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4911:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4896:3:61"},"nodeType":"YulFunctionCall","src":"4896:18:61"},{"hexValue":"4f5a5472616e73706172656e74416461707465723a2063616c6c20746f207365","kind":"string","nodeType":"YulLiteral","src":"4916:34:61","type":"","value":"OZTransparentAdapter: call to se"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4889:6:61"},"nodeType":"YulFunctionCall","src":"4889:62:61"},"nodeType":"YulExpressionStatement","src":"4889:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4971:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4982:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4967:3:61"},"nodeType":"YulFunctionCall","src":"4967:18:61"},{"hexValue":"742073746f72616765206661696c6564","kind":"string","nodeType":"YulLiteral","src":"4987:18:61","type":"","value":"t storage failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4960:6:61"},"nodeType":"YulFunctionCall","src":"4960:46:61"},"nodeType":"YulExpressionStatement","src":"4960:46:61"},{"nodeType":"YulAssignment","src":"5015:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5027:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5038:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5023:3:61"},"nodeType":"YulFunctionCall","src":"5023:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5015:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_cae871cacd4c7181726c0b80eec7dc999e5710b3f992000c3f11884209b728f7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4787:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4801:4:61","type":""}],"src":"4636:412:61"}]},"contents":"{\n    { }\n    function validator_revert_address_payable(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_payablet_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_payable(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address_payable(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(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 panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(eq(value_1, and(value_1, 0xff))) { revert(0, 0) }\n        value2 := value_1\n        let offset := calldataload(add(headStart, 96))\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        value3 := memPtr\n    }\n    function abi_encode_tuple_t_stringliteral_11ca7cb660bf02687d0545cfd1a2828b92119ad5155178ad4adc14f51a7fb8ad__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), \"OZTransparentAdapter: invalid pr\")\n        mstore(add(headStart, 96), \"oxy\")\n        tail := add(headStart, 128)\n    }\n    function copy_memory_to_memory(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        if gt(i, length) { 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(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_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_bytes(value2, 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        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\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(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_cae871cacd4c7181726c0b80eec7dc999e5710b3f992000c3f11884209b728f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 48)\n        mstore(add(headStart, 64), \"OZTransparentAdapter: call to se\")\n        mstore(add(headStart, 96), \"t storage failed\")\n        tail := add(headStart, 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9154":[{"length":32,"start":153},{"length":32,"start":461},{"length":32,"start":847}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a366004610545565b61010a565b005b61007f61008f36600461057e565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f2366004610545565b610234565b61007f6101053660046105d1565b610288565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050505050565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f2839709060240161015a565b60008473ffffffffffffffffffffffffffffffffffffffff163b11610334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f5a5472616e73706172656e74416461707465723a20696e76616c696420707260448201527f6f7879000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000085858560405160240161038393929190610713565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1ea9470200000000000000000000000000000000000000000000000000000000179052516103ea92919060240161073e565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4f1ef286000000000000000000000000000000000000000000000000000000001790525161044d9190610775565b6000604051808303816000865af19150503d806000811461048a576040519150601f19603f3d011682016040523d82523d6000602084013e61048f565b606091505b505090508061022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f5a5472616e73706172656e74416461707465723a2063616c6c20746f20736560448201527f742073746f72616765206661696c656400000000000000000000000000000000606482015260840161032b565b73ffffffffffffffffffffffffffffffffffffffff8116811461054257600080fd5b50565b6000806040838503121561055857600080fd5b823561056381610520565b9150602083013561057381610520565b809150509250929050565b60006020828403121561059057600080fd5b813561059b81610520565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156105e757600080fd5b84356105f281610520565b935060208501359250604085013560ff8116811461060f57600080fd5b9150606085013567ffffffffffffffff8082111561062c57600080fd5b818701915087601f83011261064057600080fd5b813581811115610652576106526105a2565b604051601f8201601f19908116603f0116810190838211818310171561067a5761067a6105a2565b816040528281528a602084870101111561069357600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60005b838110156106d25781810151838201526020016106ba565b838111156106e1576000848401525b50505050565b600081518084526106ff8160208601602086016106b7565b601f01601f19169290920160200192915050565b83815260ff8316602082015260606040820152600061073560608301846106e7565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061076d60408301846106e7565b949350505050565b600082516107878184602087016106b7565b919091019291505056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x545 JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x57E JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x545 JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x5D1 JUMP JUMPDEST PUSH2 0x288 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 JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP 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 PUSH2 0x15A JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A5472616E73706172656E74416461707465723A20696E76616C6964207072 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F78790000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x383 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x713 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x3EA SWAP3 SWAP2 SWAP1 PUSH1 0x24 ADD PUSH2 0x73E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4F1EF28600000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE MLOAD PUSH2 0x44D SWAP2 SWAP1 PUSH2 0x775 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 0x48A 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 0x48F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x22D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A5472616E73706172656E74416461707465723A2063616C6C20746F207365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x742073746F72616765206661696C656400000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x563 DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x573 DUP2 PUSH2 0x520 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x59B DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5F2 DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x640 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x652 JUMPI PUSH2 0x652 PUSH2 0x5A2 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 0x67A JUMPI PUSH2 0x67A PUSH2 0x5A2 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x693 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x6BA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x6FF DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x6B7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x735 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x6E7 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x76D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x6E7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x787 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x6B7 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"385:1901:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1123:140;;;;;;:::i;:::-;;:::i;:::-;;956:112;;;;;;:::i;:::-;;:::i;595:37::-;;;;;;;;1042:42:61;1030:55;;;1012:74;;1000:2;985:18;595:37:42;;;;;;;2153:131;;;;;;:::i;:::-;;:::i;1318:780::-;;;;;;:::i;:::-;;:::i;1123:140::-;1216:40;;;;;:23;1030:55:61;;;1216:40:42;;;1012:74:61;1216:23:42;;;;;985:18:61;;1216:40:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1123:140;;:::o;956:112::-;1024:37;;;;;:23;1048:12;1030:55:61;;1024:37:42;;;1012:74:61;1024:23:42;;;;;985:18:61;;1024:37:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:112;:::o;2153:131::-;2241:36;;;;;:25;1030:55:61;;;2241:36:42;;;1012:74:61;2241:25:42;;;;;985:18:61;;2241:36:42;866:226:61;1318:780:42;1498:1;1477:6;:18;;;:22;1469:70;;;;;;;2858:2:61;1469:70:42;;;2840:21:61;2897:2;2877:18;;;2870:30;2936:34;2916:18;;;2909:62;3007:5;2987:18;;;2980:33;3030:19;;1469:70:42;;;;;;;;;1793:12;1811:6;:11;;1909:12;1965:4;1971:7;1980:6;1923:65;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1923:65:42;;;;;;;;;;;;;;;;;;;;1836:167;;;;1923:65;1836:167;;;:::i;:::-;;;;-1:-1:-1;;1836:167:42;;;;;;;;;;;;;;;;;;;;1811:202;;;1836:167;1811:202;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1792:221;;;2031:7;2023:68;;;;;;;4838:2:61;2023:68:42;;;4820:21:61;4877:2;4857:18;;;4850:30;4916:34;4896:18;;;4889:62;4987:18;4967;;;4960:46;5023:19;;2023:68:42;4636:412:61;14:162;108:42;101:5;97:54;90:5;87:65;77:93;;166:1;163;156:12;77:93;14:162;:::o;181:412::-;257:6;265;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;373:9;360:23;392:39;425:5;392:39;:::i;:::-;450:5;-1:-1:-1;507:2:61;492:18;;479:32;520:41;479:32;520:41;:::i;:::-;580:7;570:17;;;181:412;;;;;:::o;598:263::-;665:6;718:2;706:9;697:7;693:23;689:32;686:52;;;734:1;731;724:12;686:52;773:9;760:23;792:39;825:5;792:39;:::i;:::-;850:5;598:263;-1:-1:-1;;;598:263:61:o;1097:184::-;1149:77;1146:1;1139:88;1246:4;1243:1;1236:15;1270:4;1267:1;1260:15;1286:1365;1387:6;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1520:9;1507:23;1539:39;1572:5;1539:39;:::i;:::-;1597:5;-1:-1:-1;1649:2:61;1634:18;;1621:32;;-1:-1:-1;1705:2:61;1690:18;;1677:32;1753:4;1740:18;;1728:31;;1718:59;;1773:1;1770;1763:12;1718:59;1796:7;-1:-1:-1;1854:2:61;1839:18;;1826:32;1877:18;1907:14;;;1904:34;;;1934:1;1931;1924:12;1904:34;1972:6;1961:9;1957:22;1947:32;;2017:7;2010:4;2006:2;2002:13;1998:27;1988:55;;2039:1;2036;2029:12;1988:55;2075:2;2062:16;2097:2;2093;2090:10;2087:36;;;2103:18;;:::i;:::-;2237:2;2231:9;2299:4;2291:13;;-1:-1:-1;;2287:22:61;;;2311:2;2283:31;2279:40;2267:53;;;2335:18;;;2355:22;;;2332:46;2329:72;;;2381:18;;:::i;:::-;2421:10;2417:2;2410:22;2456:2;2448:6;2441:18;2496:7;2491:2;2486;2482;2478:11;2474:20;2471:33;2468:53;;;2517:1;2514;2507:12;2468:53;2573:2;2568;2564;2560:11;2555:2;2547:6;2543:15;2530:46;2618:1;2613:2;2608;2600:6;2596:15;2592:24;2585:35;2639:6;2629:16;;;;;;;1286:1365;;;;;;;:::o;3060:258::-;3132:1;3142:113;3156:6;3153:1;3150:13;3142:113;;;3232:11;;;3226:18;3213:11;;;3206:39;3178:2;3171:10;3142:113;;;3273:6;3270:1;3267:13;3264:48;;;3308:1;3299:6;3294:3;3290:16;3283:27;3264:48;;3060:258;;;:::o;3323:316::-;3364:3;3402:5;3396:12;3429:6;3424:3;3417:19;3445:63;3501:6;3494:4;3489:3;3485:14;3478:4;3471:5;3467:16;3445:63;:::i;:::-;3553:2;3541:15;-1:-1:-1;;3537:88:61;3528:98;;;;3628:4;3524:109;;3323:316;-1:-1:-1;;3323:316:61:o;3644:366::-;3843:6;3832:9;3825:25;3898:4;3890:6;3886:17;3881:2;3870:9;3866:18;3859:45;3940:2;3935;3924:9;3920:18;3913:30;3806:4;3960:44;4000:2;3989:9;3985:18;3977:6;3960:44;:::i;:::-;3952:52;3644:366;-1:-1:-1;;;;;3644:366:61:o;4015:337::-;4202:42;4194:6;4190:55;4179:9;4172:74;4282:2;4277;4266:9;4262:18;4255:30;4153:4;4302:44;4342:2;4331:9;4327:18;4319:6;4302:44;:::i;:::-;4294:52;4015:337;-1:-1:-1;;;;4015:337:61:o;4357:274::-;4486:3;4524:6;4518:13;4540:53;4586:6;4581:3;4574:4;4566:6;4562:17;4540:53;:::i;:::-;4609:16;;;;;4357:274;-1:-1:-1;;4357:274:61:o"},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","finalizeUpgrade(address,address)":"192957c8","initiateUpgrade(address)":"479aa927","proxyUpdater()":"7bafa3c7","setStorage(address,bytes32,uint8,bytes)":"9bc6ee9a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxyUpdater\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"params\":{\"_newAdmin\":\"Address of the new admin.\",\"_proxy\":\"Address of the proxy.\"}},\"constructor\":{\"params\":{\"_proxyUpdater\":\"Address of the ProxyUpdater contract.\"}},\"finalizeUpgrade(address,address)\":{\"params\":{\"_implementation\":\"Address of the proxy's final implementation.\",\"_proxy\":\"Address of the proxy.\"}},\"initiateUpgrade(address)\":{\"params\":{\"_proxy\":\"Address of the proxy.\"}},\"setStorage(address,bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_proxy\":\"Address of the proxy to modify.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] (inclusive).\"}}},\"title\":\"OZTransparentAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"notice\":\"Changes the admin of the proxy. Note that this function is not triggered during a deployment. Instead, it's only triggered if transferring ownership of the UUPS proxy away from the ChugSplashManager, which occurs outside of the deployment process.\"},\"finalizeUpgrade(address,address)\":{\"notice\":\"Complete a deployment or upgrade of a proxy.\"},\"initiateUpgrade(address)\":{\"notice\":\"Initiate a deployment or upgrade of a proxy.\"},\"proxyUpdater()\":{\"notice\":\"Address of the ProxyUpdater contract that will be set as the Transparent proxy's implementation during the deployment.\"},\"setStorage(address,bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset.\"}},\"notice\":\"Adapter for an OpenZeppelin Transparent Upgradeable proxy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/OZTransparentAdapter.sol\":\"OZTransparentAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"contracts/adapters/OZTransparentAdapter.sol\":{\"keccak256\":\"0x7f8ff017000d3f7490e3d0f74fbb567bbb4250cc2ec2dfe1ef764fac49c13732\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dceebde0f582f4cb6ef77b674ef8f703acef97a066619c425b8ae3a5bfdc7c\",\"dweb:/ipfs/QmQJAKxxQcesNuSigN2L1a44KDu5WZCtMCE3CqCDEnzjcA\"]},\"contracts/interfaces/IProxyAdapter.sol\":{\"keccak256\":\"0x48f5f46c6fe6e36f52d861783e8bba551d312a41cd0abee9d256314e6b720ded\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://081672af4de6cbd120e7cda0ffee02da555550ec3858980bc76069c0d2c4e55c\",\"dweb:/ipfs/QmSNFy1mHdxSbKUvP5DJt8euJt1Gun356dqkfZHAdmUf2W\"]},\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/adapters/OZUUPSAccessControlAdapter.sol":{"OZUUPSAccessControlAdapter":{"abi":[{"inputs":[{"internalType":"address","name":"_proxyUpdater","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxyUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9292":{"entryPoint":null,"id":9292,"parameterSlots":1,"returnSlots":0},"@_9346":{"entryPoint":null,"id":9346,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":180,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:722:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"},{"body":{"nodeType":"YulBlock","src":"483:237:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:61"},"nodeType":"YulFunctionCall","src":"493:21:61"},"nodeType":"YulExpressionStatement","src":"493:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:61"},"nodeType":"YulFunctionCall","src":"530:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:61","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:61"},"nodeType":"YulFunctionCall","src":"523:30:61"},"nodeType":"YulExpressionStatement","src":"523:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:61"},"nodeType":"YulFunctionCall","src":"569:18:61"},{"hexValue":"4f5a5555505342617365416461707465723a20757064617465722063616e6e6f","kind":"string","nodeType":"YulLiteral","src":"589:34:61","type":"","value":"OZUUPSBaseAdapter: updater canno"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:61"},"nodeType":"YulFunctionCall","src":"562:62:61"},"nodeType":"YulExpressionStatement","src":"562:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"644:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"655:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"640:3:61"},"nodeType":"YulFunctionCall","src":"640:18:61"},{"hexValue":"742062652061646472657373283029","kind":"string","nodeType":"YulLiteral","src":"660:17:61","type":"","value":"t be address(0)"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"633:6:61"},"nodeType":"YulFunctionCall","src":"633:45:61"},"nodeType":"YulExpressionStatement","src":"633:45:61"},{"nodeType":"YulAssignment","src":"687:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"699:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"710:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"695:3:61"},"nodeType":"YulFunctionCall","src":"695:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"687:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:61","type":""}],"src":"309:411:61"}]},"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_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8__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), \"OZUUPSBaseAdapter: updater canno\")\n        mstore(add(headStart, 96), \"t be address(0)\")\n        tail := add(headStart, 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b506040516106c93803806106c983398101604081905261002f916100b4565b806001600160a01b0381166100a25760405162461bcd60e51b815260206004820152602f60248201527f4f5a5555505342617365416461707465723a20757064617465722063616e6e6f60448201526e74206265206164647265737328302960881b606482015260840160405180910390fd5b6001600160a01b0316608052506100e4565b6000602082840312156100c657600080fd5b81516001600160a01b03811681146100dd57600080fd5b9392505050565b6080516105c461010560003960008181609901526101cd01526105c46000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a3660046103a2565b61010a565b005b61007f61008f3660046103db565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f23660046103a2565b610294565b61007f61010536600461042e565b6102ef565b6040517f93af029200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906393af0292906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166366aa56c56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b5050505050565b6040517f2f2ff15d0000000000000000000000000000000000000000000000000000000081526000600482015273ffffffffffffffffffffffffffffffffffffffff8281166024830152831690632f2ff15d9060440161015a565b6040517f1ea9470200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631ea947029061034590869086908690600401610532565b600060405180830381600087803b15801561035f57600080fd5b505af1158015610373573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039f57600080fd5b50565b600080604083850312156103b557600080fd5b82356103c08161037d565b915060208301356103d08161037d565b809150509250929050565b6000602082840312156103ed57600080fd5b81356103f88161037d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561044457600080fd5b843561044f8161037d565b935060208501359250604085013560ff8116811461046c57600080fd5b9150606085013567ffffffffffffffff8082111561048957600080fd5b818701915087601f83011261049d57600080fd5b8135818111156104af576104af6103ff565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104f5576104f56103ff565b816040528281528a602084870101111561050e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b8381526000602060ff85168184015260606040840152835180606085015260005b8181101561056f57858101830151858201608001528201610553565b81811115610581576000608083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016080019594505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x6C9 CODESIZE SUB DUP1 PUSH2 0x6C9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A5555505342617365416461707465723A20757064617465722063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x742062652061646472657373283029 PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE POP PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x5C4 PUSH2 0x105 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x99 ADD MSTORE PUSH2 0x1CD ADD MSTORE PUSH2 0x5C4 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x3A2 JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A2 JUMP JUMPDEST PUSH2 0x294 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x42E JUMP JUMPDEST PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x93AF029200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x93AF0292 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x66AA56C5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2F2FF15D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x2F2FF15D SWAP1 PUSH1 0x44 ADD PUSH2 0x15A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x1EA94702 SWAP1 PUSH2 0x345 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x532 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x373 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3C0 DUP2 PUSH2 0x37D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3D0 DUP2 PUSH2 0x37D JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3F8 DUP2 PUSH2 0x37D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x44F DUP2 PUSH2 0x37D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x46C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x49D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4AF JUMPI PUSH2 0x4AF PUSH2 0x3FF 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 0x4F5 JUMPI PUSH2 0x4F5 PUSH2 0x3FF JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x50E 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xFF DUP6 AND DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x56F JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x553 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x581 JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"424:485:43:-:0;;;569:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;622:13;-1:-1:-1;;;;;1008:27:44;;1000:87;;;;-1:-1:-1;;;1000:87:44;;511:2:61;1000:87:44;;;493:21:61;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:61;;;633:45;695:19;;1000:87:44;;;;;;;;-1:-1:-1;;;;;1097:28:44;;;-1:-1:-1;424:485:43;;14:290:61;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;309:411::-;424:485:43;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@changeProxyAdmin_9310":{"entryPoint":660,"id":9310,"parameterSlots":2,"returnSlots":0},"@finalizeUpgrade_9382":{"entryPoint":266,"id":9382,"parameterSlots":2,"returnSlots":0},"@initiateUpgrade_9366":{"entryPoint":400,"id":9366,"parameterSlots":1,"returnSlots":0},"@proxyUpdater_9325":{"entryPoint":null,"id":9325,"parameterSlots":0,"returnSlots":0},"@setStorage_9404":{"entryPoint":751,"id":9404,"parameterSlots":4,"returnSlots":0},"abi_decode_tuple_t_address_payable":{"entryPoint":987,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_address":{"entryPoint":930,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr":{"entryPoint":1070,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1330,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_rational_0_by_1_t_address__to_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"panic_error_0x41":{"entryPoint":1023,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address_payable":{"entryPoint":893,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3774:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"67:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"154:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"163:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"166:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"156:6:61"},"nodeType":"YulFunctionCall","src":"156:12:61"},"nodeType":"YulExpressionStatement","src":"156:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"90:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"101:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"108:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"97:3:61"},"nodeType":"YulFunctionCall","src":"97:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"87:2:61"},"nodeType":"YulFunctionCall","src":"87:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"80:6:61"},"nodeType":"YulFunctionCall","src":"80:73:61"},"nodeType":"YulIf","src":"77:93:61"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"56:5:61","type":""}],"src":"14:162:61"},{"body":{"nodeType":"YulBlock","src":"276:317:61","statements":[{"body":{"nodeType":"YulBlock","src":"322:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"331:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"334:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"324:6:61"},"nodeType":"YulFunctionCall","src":"324:12:61"},"nodeType":"YulExpressionStatement","src":"324:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"297:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"306:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"293:3:61"},"nodeType":"YulFunctionCall","src":"293:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"318:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"289:3:61"},"nodeType":"YulFunctionCall","src":"289:32:61"},"nodeType":"YulIf","src":"286:52:61"},{"nodeType":"YulVariableDeclaration","src":"347:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"360:12:61"},"nodeType":"YulFunctionCall","src":"360:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"351:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"425:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"392:32:61"},"nodeType":"YulFunctionCall","src":"392:39:61"},"nodeType":"YulExpressionStatement","src":"392:39:61"},{"nodeType":"YulAssignment","src":"440:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"450:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"440:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"464:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"496:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"507:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"492:3:61"},"nodeType":"YulFunctionCall","src":"492:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"479:12:61"},"nodeType":"YulFunctionCall","src":"479:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"468:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"553:7:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"520:32:61"},"nodeType":"YulFunctionCall","src":"520:41:61"},"nodeType":"YulExpressionStatement","src":"520:41:61"},{"nodeType":"YulAssignment","src":"570:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"580:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"570:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"234:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"245:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"257:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"265:6:61","type":""}],"src":"181:412:61"},{"body":{"nodeType":"YulBlock","src":"676:185:61","statements":[{"body":{"nodeType":"YulBlock","src":"722:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:61"},"nodeType":"YulFunctionCall","src":"724:12:61"},"nodeType":"YulExpressionStatement","src":"724:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"697:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"706:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"693:3:61"},"nodeType":"YulFunctionCall","src":"693:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"718:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"689:3:61"},"nodeType":"YulFunctionCall","src":"689:32:61"},"nodeType":"YulIf","src":"686:52:61"},{"nodeType":"YulVariableDeclaration","src":"747:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"773:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"760:12:61"},"nodeType":"YulFunctionCall","src":"760:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"751:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"825:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"792:32:61"},"nodeType":"YulFunctionCall","src":"792:39:61"},"nodeType":"YulExpressionStatement","src":"792:39:61"},{"nodeType":"YulAssignment","src":"840:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"850:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"840:6:61"}]}]},"name":"abi_decode_tuple_t_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"642:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"653:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"665:6:61","type":""}],"src":"598:263:61"},{"body":{"nodeType":"YulBlock","src":"967:125:61","statements":[{"nodeType":"YulAssignment","src":"977:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:61"},"nodeType":"YulFunctionCall","src":"985:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1019:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1034:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1042:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1030:3:61"},"nodeType":"YulFunctionCall","src":"1030:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1012:6:61"},"nodeType":"YulFunctionCall","src":"1012:74:61"},"nodeType":"YulExpressionStatement","src":"1012:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"936:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"947:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"958:4:61","type":""}],"src":"866:226:61"},{"body":{"nodeType":"YulBlock","src":"1129:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1139:6:61"},"nodeType":"YulFunctionCall","src":"1139:88:61"},"nodeType":"YulExpressionStatement","src":"1139:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1243:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1246:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1236:6:61"},"nodeType":"YulFunctionCall","src":"1236:15:61"},"nodeType":"YulExpressionStatement","src":"1236:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1270:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1260:6:61"},"nodeType":"YulFunctionCall","src":"1260:15:61"},"nodeType":"YulExpressionStatement","src":"1260:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1097:184:61"},{"body":{"nodeType":"YulBlock","src":"1422:1229:61","statements":[{"body":{"nodeType":"YulBlock","src":"1469:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1478:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1481:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1471:6:61"},"nodeType":"YulFunctionCall","src":"1471:12:61"},"nodeType":"YulExpressionStatement","src":"1471:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1443:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1452:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1439:3:61"},"nodeType":"YulFunctionCall","src":"1439:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1464:3:61","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1435:3:61"},"nodeType":"YulFunctionCall","src":"1435:33:61"},"nodeType":"YulIf","src":"1432:53:61"},{"nodeType":"YulVariableDeclaration","src":"1494:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1520:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1507:12:61"},"nodeType":"YulFunctionCall","src":"1507:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1498:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1572:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"1539:32:61"},"nodeType":"YulFunctionCall","src":"1539:39:61"},"nodeType":"YulExpressionStatement","src":"1539:39:61"},{"nodeType":"YulAssignment","src":"1587:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"1597:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1587:6:61"}]},{"nodeType":"YulAssignment","src":"1611:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1638:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1649:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1634:3:61"},"nodeType":"YulFunctionCall","src":"1634:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1621:12:61"},"nodeType":"YulFunctionCall","src":"1621:32:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1611:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1662:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1694:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1705:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1690:3:61"},"nodeType":"YulFunctionCall","src":"1690:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1677:12:61"},"nodeType":"YulFunctionCall","src":"1677:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1666:7:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1761:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1770:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1773:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1763:6:61"},"nodeType":"YulFunctionCall","src":"1763:12:61"},"nodeType":"YulExpressionStatement","src":"1763:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1731:7:61"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1744:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"1753:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1740:3:61"},"nodeType":"YulFunctionCall","src":"1740:18:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1728:2:61"},"nodeType":"YulFunctionCall","src":"1728:31:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1721:6:61"},"nodeType":"YulFunctionCall","src":"1721:39:61"},"nodeType":"YulIf","src":"1718:59:61"},{"nodeType":"YulAssignment","src":"1786:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1796:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1786:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1812:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1843:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1854:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1839:3:61"},"nodeType":"YulFunctionCall","src":"1839:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1826:12:61"},"nodeType":"YulFunctionCall","src":"1826:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1816:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1867:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1877:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1871:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1922:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1934:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1924:6:61"},"nodeType":"YulFunctionCall","src":"1924:12:61"},"nodeType":"YulExpressionStatement","src":"1924:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1910:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1918:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:61"},"nodeType":"YulFunctionCall","src":"1907:14:61"},"nodeType":"YulIf","src":"1904:34:61"},{"nodeType":"YulVariableDeclaration","src":"1947:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1961:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"1972:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1957:3:61"},"nodeType":"YulFunctionCall","src":"1957:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1951:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2027:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2036:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2039:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2029:6:61"},"nodeType":"YulFunctionCall","src":"2029:12:61"},"nodeType":"YulExpressionStatement","src":"2029:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2006:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2010:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:61"},"nodeType":"YulFunctionCall","src":"2002:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2017:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1998:3:61"},"nodeType":"YulFunctionCall","src":"1998:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1991:6:61"},"nodeType":"YulFunctionCall","src":"1991:35:61"},"nodeType":"YulIf","src":"1988:55:61"},{"nodeType":"YulVariableDeclaration","src":"2052:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2075:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2062:12:61"},"nodeType":"YulFunctionCall","src":"2062:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2056:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2101:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2103:16:61"},"nodeType":"YulFunctionCall","src":"2103:18:61"},"nodeType":"YulExpressionStatement","src":"2103:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2093:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2097:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2090:2:61"},"nodeType":"YulFunctionCall","src":"2090:10:61"},"nodeType":"YulIf","src":"2087:36:61"},{"nodeType":"YulVariableDeclaration","src":"2132:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2142:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2136:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2217:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2237:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2231:5:61"},"nodeType":"YulFunctionCall","src":"2231:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2221:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2249:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2271:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2295:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2299:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2291:3:61"},"nodeType":"YulFunctionCall","src":"2291:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2306:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2287:3:61"},"nodeType":"YulFunctionCall","src":"2287:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"2311:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2283:3:61"},"nodeType":"YulFunctionCall","src":"2283:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2316:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2279:3:61"},"nodeType":"YulFunctionCall","src":"2279:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:61"},"nodeType":"YulFunctionCall","src":"2267:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2253:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2379:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2381:16:61"},"nodeType":"YulFunctionCall","src":"2381:18:61"},"nodeType":"YulExpressionStatement","src":"2381:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2338:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2350:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2335:2:61"},"nodeType":"YulFunctionCall","src":"2335:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2358:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2370:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2355:2:61"},"nodeType":"YulFunctionCall","src":"2355:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2332:2:61"},"nodeType":"YulFunctionCall","src":"2332:46:61"},"nodeType":"YulIf","src":"2329:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2417:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2421:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2410:6:61"},"nodeType":"YulFunctionCall","src":"2410:22:61"},"nodeType":"YulExpressionStatement","src":"2410:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2448:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2456:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2441:6:61"},"nodeType":"YulFunctionCall","src":"2441:18:61"},"nodeType":"YulExpressionStatement","src":"2441:18:61"},{"body":{"nodeType":"YulBlock","src":"2505:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2517:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2507:6:61"},"nodeType":"YulFunctionCall","src":"2507:12:61"},"nodeType":"YulExpressionStatement","src":"2507:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2482:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2486:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2478:3:61"},"nodeType":"YulFunctionCall","src":"2478:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"2491:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2474:3:61"},"nodeType":"YulFunctionCall","src":"2474:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2496:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2471:2:61"},"nodeType":"YulFunctionCall","src":"2471:33:61"},"nodeType":"YulIf","src":"2468:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2547:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2555:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2543:3:61"},"nodeType":"YulFunctionCall","src":"2543:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2564:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2568:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2560:3:61"},"nodeType":"YulFunctionCall","src":"2560:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2573:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2530:12:61"},"nodeType":"YulFunctionCall","src":"2530:46:61"},"nodeType":"YulExpressionStatement","src":"2530:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2600:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2608:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2596:3:61"},"nodeType":"YulFunctionCall","src":"2596:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"2613:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:61"},"nodeType":"YulFunctionCall","src":"2592:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"2618:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2585:6:61"},"nodeType":"YulFunctionCall","src":"2585:35:61"},"nodeType":"YulExpressionStatement","src":"2585:35:61"},{"nodeType":"YulAssignment","src":"2629:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2639:6:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2629:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1364:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1375:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1387:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1395:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1403:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1411:6:61","type":""}],"src":"1286:1365:61"},{"body":{"nodeType":"YulBlock","src":"2793:168:61","statements":[{"nodeType":"YulAssignment","src":"2803:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2815:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2826:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2811:3:61"},"nodeType":"YulFunctionCall","src":"2811:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2803:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2845:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"2856:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2838:6:61"},"nodeType":"YulFunctionCall","src":"2838:25:61"},"nodeType":"YulExpressionStatement","src":"2838:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2883:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2894:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2879:3:61"},"nodeType":"YulFunctionCall","src":"2879:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2903:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2911:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2899:3:61"},"nodeType":"YulFunctionCall","src":"2899:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2872:6:61"},"nodeType":"YulFunctionCall","src":"2872:83:61"},"nodeType":"YulExpressionStatement","src":"2872:83:61"}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2754:9:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2765:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2773:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2784:4:61","type":""}],"src":"2656:305:61"},{"body":{"nodeType":"YulBlock","src":"3137:635:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3154:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"3165:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3147:6:61"},"nodeType":"YulFunctionCall","src":"3147:25:61"},"nodeType":"YulExpressionStatement","src":"3147:25:61"},{"nodeType":"YulVariableDeclaration","src":"3181:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3191:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3185:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3213:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3224:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3209:3:61"},"nodeType":"YulFunctionCall","src":"3209:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3233:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3241:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3229:3:61"},"nodeType":"YulFunctionCall","src":"3229:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3202:6:61"},"nodeType":"YulFunctionCall","src":"3202:45:61"},"nodeType":"YulExpressionStatement","src":"3202:45:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3267:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3278:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3263:3:61"},"nodeType":"YulFunctionCall","src":"3263:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"3283:2:61","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3256:6:61"},"nodeType":"YulFunctionCall","src":"3256:30:61"},"nodeType":"YulExpressionStatement","src":"3256:30:61"},{"nodeType":"YulVariableDeclaration","src":"3295:27:61","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3315:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3309:5:61"},"nodeType":"YulFunctionCall","src":"3309:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3299:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3342:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3353:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3338:3:61"},"nodeType":"YulFunctionCall","src":"3338:18:61"},{"name":"length","nodeType":"YulIdentifier","src":"3358:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3331:6:61"},"nodeType":"YulFunctionCall","src":"3331:34:61"},"nodeType":"YulExpressionStatement","src":"3331:34:61"},{"nodeType":"YulVariableDeclaration","src":"3374:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3383:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3378:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3443:91:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3472:9:61"},{"name":"i","nodeType":"YulIdentifier","src":"3483:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3468:3:61"},"nodeType":"YulFunctionCall","src":"3468:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"3487:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3464:3:61"},"nodeType":"YulFunctionCall","src":"3464:27:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3507:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"3515:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3503:3:61"},"nodeType":"YulFunctionCall","src":"3503:14:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3519:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3499:3:61"},"nodeType":"YulFunctionCall","src":"3499:23:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3493:5:61"},"nodeType":"YulFunctionCall","src":"3493:30:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3457:6:61"},"nodeType":"YulFunctionCall","src":"3457:67:61"},"nodeType":"YulExpressionStatement","src":"3457:67:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3404:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3407:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3401:2:61"},"nodeType":"YulFunctionCall","src":"3401:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3415:19:61","statements":[{"nodeType":"YulAssignment","src":"3417:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3426:1:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3429:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3422:3:61"},"nodeType":"YulFunctionCall","src":"3422:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3417:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3397:3:61","statements":[]},"src":"3393:141:61"},{"body":{"nodeType":"YulBlock","src":"3568:67:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3597:9:61"},{"name":"length","nodeType":"YulIdentifier","src":"3608:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3593:3:61"},"nodeType":"YulFunctionCall","src":"3593:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"3617:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3589:3:61"},"nodeType":"YulFunctionCall","src":"3589:32:61"},{"kind":"number","nodeType":"YulLiteral","src":"3623:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3582:6:61"},"nodeType":"YulFunctionCall","src":"3582:43:61"},"nodeType":"YulExpressionStatement","src":"3582:43:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3549:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3552:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3546:2:61"},"nodeType":"YulFunctionCall","src":"3546:13:61"},"nodeType":"YulIf","src":"3543:92:61"},{"nodeType":"YulAssignment","src":"3644:122:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3660:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3679:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3687:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3675:3:61"},"nodeType":"YulFunctionCall","src":"3675:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3692:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3671:3:61"},"nodeType":"YulFunctionCall","src":"3671:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3656:3:61"},"nodeType":"YulFunctionCall","src":"3656:104:61"},{"kind":"number","nodeType":"YulLiteral","src":"3762:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3652:3:61"},"nodeType":"YulFunctionCall","src":"3652:114:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3644:4:61"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3090:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3101:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3109:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3117:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3128:4:61","type":""}],"src":"2966:806:61"}]},"contents":"{\n    { }\n    function validator_revert_address_payable(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_payablet_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_payable(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address_payable(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(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 panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(eq(value_1, and(value_1, 0xff))) { revert(0, 0) }\n        value2 := value_1\n        let offset := calldataload(add(headStart, 96))\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        value3 := memPtr\n    }\n    function abi_encode_tuple_t_rational_0_by_1_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        let _1 := 32\n        mstore(add(headStart, _1), and(value1, 0xff))\n        mstore(add(headStart, 64), 96)\n        let length := mload(value2)\n        mstore(add(headStart, 96), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 128), mload(add(add(value2, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 128), 0)\n        }\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9325":[{"length":32,"start":153},{"length":32,"start":461}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a3660046103a2565b61010a565b005b61007f61008f3660046103db565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f23660046103a2565b610294565b61007f61010536600461042e565b6102ef565b6040517f93af029200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906393af0292906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166366aa56c56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b5050505050565b6040517f2f2ff15d0000000000000000000000000000000000000000000000000000000081526000600482015273ffffffffffffffffffffffffffffffffffffffff8281166024830152831690632f2ff15d9060440161015a565b6040517f1ea9470200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631ea947029061034590869086908690600401610532565b600060405180830381600087803b15801561035f57600080fd5b505af1158015610373573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039f57600080fd5b50565b600080604083850312156103b557600080fd5b82356103c08161037d565b915060208301356103d08161037d565b809150509250929050565b6000602082840312156103ed57600080fd5b81356103f88161037d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561044457600080fd5b843561044f8161037d565b935060208501359250604085013560ff8116811461046c57600080fd5b9150606085013567ffffffffffffffff8082111561048957600080fd5b818701915087601f83011261049d57600080fd5b8135818111156104af576104af6103ff565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104f5576104f56103ff565b816040528281528a602084870101111561050e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b8381526000602060ff85168184015260606040840152835180606085015260005b8181101561056f57858101830151858201608001528201610553565b81811115610581576000608083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016080019594505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x3A2 JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A2 JUMP JUMPDEST PUSH2 0x294 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x42E JUMP JUMPDEST PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x93AF029200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x93AF0292 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x66AA56C5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2F2FF15D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x2F2FF15D SWAP1 PUSH1 0x44 ADD PUSH2 0x15A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x1EA94702 SWAP1 PUSH2 0x345 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x532 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x373 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3C0 DUP2 PUSH2 0x37D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3D0 DUP2 PUSH2 0x37D JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3F8 DUP2 PUSH2 0x37D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x44F DUP2 PUSH2 0x37D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x46C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x49D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4AF JUMPI PUSH2 0x4AF PUSH2 0x3FF 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 0x4F5 JUMPI PUSH2 0x4F5 PUSH2 0x3FF JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x50E 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xFF DUP6 AND DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x56F JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x553 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x581 JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"424:485:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1404:147:44;;;;;;:::i;:::-;;:::i;:::-;;1187:162;;;;;;:::i;:::-;;:::i;829:37::-;;;;;;;;1042:42:61;1030:55;;;1012:74;;1000:2;985:18;829:37:44;;;;;;;755:152:43;;;;;;:::i;:::-;;:::i;1606:213:44:-;;;;;;:::i;:::-;;:::i;1404:147::-;1497:47;;;;;:30;1030:55:61;;;1497:47:44;;;1012:74:61;1497:30:44;;;;;985:18:61;;1497:47:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1404:147;;:::o;1187:162::-;1255:45;;;;;:31;1287:12;1030:55:61;;1255:45:44;;;1012:74:61;1255:31:44;;;;;985:18:61;;1255:45:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1324:6;1310:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1187:162;:::o;755:152:43:-;852:48;;;;;884:4;852:48;;;2838:25:61;852:31:43;2899:55:61;;;2879:18;;;2872:83;852:31:43;;;;;2811:18:61;;852:48:43;2656:305:61;1606:213:44;1757:55;;;;;:32;;;;;;:55;;1790:4;;1796:7;;1805:6;;1757:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1606:213;;;;:::o;14:162:61:-;108:42;101:5;97:54;90:5;87:65;77:93;;166:1;163;156:12;77:93;14:162;:::o;181:412::-;257:6;265;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;373:9;360:23;392:39;425:5;392:39;:::i;:::-;450:5;-1:-1:-1;507:2:61;492:18;;479:32;520:41;479:32;520:41;:::i;:::-;580:7;570:17;;;181:412;;;;;:::o;598:263::-;665:6;718:2;706:9;697:7;693:23;689:32;686:52;;;734:1;731;724:12;686:52;773:9;760:23;792:39;825:5;792:39;:::i;:::-;850:5;598:263;-1:-1:-1;;;598:263:61:o;1097:184::-;1149:77;1146:1;1139:88;1246:4;1243:1;1236:15;1270:4;1267:1;1260:15;1286:1365;1387:6;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1520:9;1507:23;1539:39;1572:5;1539:39;:::i;:::-;1597:5;-1:-1:-1;1649:2:61;1634:18;;1621:32;;-1:-1:-1;1705:2:61;1690:18;;1677:32;1753:4;1740:18;;1728:31;;1718:59;;1773:1;1770;1763:12;1718:59;1796:7;-1:-1:-1;1854:2:61;1839:18;;1826:32;1877:18;1907:14;;;1904:34;;;1934:1;1931;1924:12;1904:34;1972:6;1961:9;1957:22;1947:32;;2017:7;2010:4;2006:2;2002:13;1998:27;1988:55;;2039:1;2036;2029:12;1988:55;2075:2;2062:16;2097:2;2093;2090:10;2087:36;;;2103:18;;:::i;:::-;2237:2;2231:9;2299:4;2291:13;;2142:66;2287:22;;;2311:2;2283:31;2279:40;2267:53;;;2335:18;;;2355:22;;;2332:46;2329:72;;;2381:18;;:::i;:::-;2421:10;2417:2;2410:22;2456:2;2448:6;2441:18;2496:7;2491:2;2486;2482;2478:11;2474:20;2471:33;2468:53;;;2517:1;2514;2507:12;2468:53;2573:2;2568;2564;2560:11;2555:2;2547:6;2543:15;2530:46;2618:1;2613:2;2608;2600:6;2596:15;2592:24;2585:35;2639:6;2629:16;;;;;;;1286:1365;;;;;;;:::o;2966:806::-;3165:6;3154:9;3147:25;3128:4;3191:2;3241:4;3233:6;3229:17;3224:2;3213:9;3209:18;3202:45;3283:2;3278;3267:9;3263:18;3256:30;3315:6;3309:13;3358:6;3353:2;3342:9;3338:18;3331:34;3383:1;3393:141;3407:6;3404:1;3401:13;3393:141;;;3503:14;;;3499:23;;3493:30;3468:17;;;3487:3;3464:27;3457:67;3422:10;;3393:141;;;3552:6;3549:1;3546:13;3543:92;;;3623:1;3617:3;3608:6;3597:9;3593:22;3589:32;3582:43;3543:92;-1:-1:-1;3687:2:61;3675:15;3692:66;3671:88;3656:104;;;;3762:3;3652:114;;2966:806;-1:-1:-1;;;;;2966:806:61:o"},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","finalizeUpgrade(address,address)":"192957c8","initiateUpgrade(address)":"479aa927","proxyUpdater()":"7bafa3c7","setStorage(address,bytes32,uint8,bytes)":"9bc6ee9a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxyUpdater\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"params\":{\"_newAdmin\":\"Address of the new admin.\",\"_proxy\":\"Address of the proxy.\"}},\"constructor\":{\"params\":{\"_proxyUpdater\":\"Address of the ProxyUpdater contract.\"}},\"finalizeUpgrade(address,address)\":{\"params\":{\"_implementation\":\"Address of the proxy's final implementation.\",\"_proxy\":\"Address of the proxy.\"}},\"initiateUpgrade(address)\":{\"params\":{\"_proxy\":\"Address of the proxy.\"}},\"setStorage(address,bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_proxy\":\"Address of the proxy to modify.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] (inclusive).\"}}},\"title\":\"OZUUPSAccessControlAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"notice\":\"Transfers ownership of the proxy using AccessControl.\"},\"finalizeUpgrade(address,address)\":{\"notice\":\"Complete a deployment or upgrade of a proxy.\"},\"initiateUpgrade(address)\":{\"notice\":\"Initiate a deployment or upgrade of a proxy.\"},\"proxyUpdater()\":{\"notice\":\"Address of the ProxyUpdater contract that will be set as the OpenZeppelin UUPS proxy's implementation during the deployment.\"},\"setStorage(address,bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset.\"}},\"notice\":\"Proxy adapter for an OpenZeppelin UUPS proxy that uses AccessControl for its ownership mechanism.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/OZUUPSAccessControlAdapter.sol\":\"OZUUPSAccessControlAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/adapters/OZUUPSAccessControlAdapter.sol\":{\"keccak256\":\"0xe68f92fbe58b6f5135a497da72df4369ffcff07a2369223a4c9ceeab086047ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a7abcdb9ca13895c42662e80f3bc8fc5a33c5250fd46f9cf053ed829437f594\",\"dweb:/ipfs/QmfVvEmfAP7Eh84tpREYRN2jdU2GYxzF3EU8ppMwZw6agh\"]},\"contracts/adapters/OZUUPSBaseAdapter.sol\":{\"keccak256\":\"0x8af3ac10ff6c92d86cdc1b2384237f9a8c1a6fb1a722a79a2174e0b491742797\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04eb5078d8d2fe293bd57deed043b9441b08b45a1b04431e424eb3069270b2ff\",\"dweb:/ipfs/QmaP93xL8qHBczUSixiAiHx8CFejbUG3HsD1hfA5F4Abyb\"]},\"contracts/interfaces/IProxyAdapter.sol\":{\"keccak256\":\"0x48f5f46c6fe6e36f52d861783e8bba551d312a41cd0abee9d256314e6b720ded\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://081672af4de6cbd120e7cda0ffee02da555550ec3858980bc76069c0d2c4e55c\",\"dweb:/ipfs/QmSNFy1mHdxSbKUvP5DJt8euJt1Gun356dqkfZHAdmUf2W\"]},\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]},\"contracts/updaters/OZUUPSUpdater.sol\":{\"keccak256\":\"0xdcbbfc4e544c811a9ae1a5436b1d43ab59926766c4442c93746757bdd1a7fbcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a75f8e1d484e4c5b05116c233f71f42f0498200599a6d84bb7f7aac3b4a2a145\",\"dweb:/ipfs/QmUTQHPxWHtZtMZ17KewyqZy76Eunr1RgQqvREMV23vW6W\"]},\"contracts/updaters/ProxyUpdater.sol\":{\"keccak256\":\"0x7fd8c8b7f1f5eb437bc7f6217a6385c60227c8af7a7c8ac3bd9f69824f232405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1527f8ba378dd9134bac0c537e2b8c3a24acd0bb43c654780b5925a2c949f748\",\"dweb:/ipfs/QmZC5KLDySGoZxHf2uPbb5MEWh66hp7DJJjCLzG2PZBD5Y\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/adapters/OZUUPSBaseAdapter.sol":{"OZUUPSBaseAdapter":{"abi":[{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxyUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","finalizeUpgrade(address,address)":"192957c8","initiateUpgrade(address)":"479aa927","proxyUpdater()":"7bafa3c7","setStorage(address,bytes32,uint8,bytes)":"9bc6ee9a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"params\":{\"_newAdmin\":\"Address of the new admin.\",\"_proxy\":\"Address of the proxy.\"}},\"constructor\":{\"params\":{\"_proxyUpdater\":\"Address of the ProxyUpdater contract.\"}},\"finalizeUpgrade(address,address)\":{\"params\":{\"_implementation\":\"Address of the proxy's final implementation.\",\"_proxy\":\"Address of the proxy.\"}},\"initiateUpgrade(address)\":{\"params\":{\"_proxy\":\"Address of the proxy.\"}},\"setStorage(address,bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_proxy\":\"Address of the proxy to modify.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] (inclusive).\"}}},\"title\":\"OZUUPSBaseAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"notice\":\"Must be overridden in child contracts in order to transfer ownership using the UUPS proxy's current acccess control mechanism (e.g. `Ownable.transferOwnership`).\"},\"finalizeUpgrade(address,address)\":{\"notice\":\"Complete a deployment or upgrade of a proxy.\"},\"initiateUpgrade(address)\":{\"notice\":\"Initiate a deployment or upgrade of a proxy.\"},\"proxyUpdater()\":{\"notice\":\"Address of the ProxyUpdater contract that will be set as the OpenZeppelin UUPS proxy's implementation during the deployment.\"},\"setStorage(address,bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset.\"}},\"notice\":\"An abstract proxy adapter for OpenZeppelin UUPS Upgradeable proxies. Child contracts must implement their own access control mechanism for the `changeProxyAdmin` function since UUPS proxies do not have a standard access control mechanism like Transparent proxies.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/OZUUPSBaseAdapter.sol\":\"OZUUPSBaseAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"contracts/adapters/OZUUPSBaseAdapter.sol\":{\"keccak256\":\"0x8af3ac10ff6c92d86cdc1b2384237f9a8c1a6fb1a722a79a2174e0b491742797\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04eb5078d8d2fe293bd57deed043b9441b08b45a1b04431e424eb3069270b2ff\",\"dweb:/ipfs/QmaP93xL8qHBczUSixiAiHx8CFejbUG3HsD1hfA5F4Abyb\"]},\"contracts/interfaces/IProxyAdapter.sol\":{\"keccak256\":\"0x48f5f46c6fe6e36f52d861783e8bba551d312a41cd0abee9d256314e6b720ded\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://081672af4de6cbd120e7cda0ffee02da555550ec3858980bc76069c0d2c4e55c\",\"dweb:/ipfs/QmSNFy1mHdxSbKUvP5DJt8euJt1Gun356dqkfZHAdmUf2W\"]},\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]},\"contracts/updaters/OZUUPSUpdater.sol\":{\"keccak256\":\"0xdcbbfc4e544c811a9ae1a5436b1d43ab59926766c4442c93746757bdd1a7fbcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a75f8e1d484e4c5b05116c233f71f42f0498200599a6d84bb7f7aac3b4a2a145\",\"dweb:/ipfs/QmUTQHPxWHtZtMZ17KewyqZy76Eunr1RgQqvREMV23vW6W\"]},\"contracts/updaters/ProxyUpdater.sol\":{\"keccak256\":\"0x7fd8c8b7f1f5eb437bc7f6217a6385c60227c8af7a7c8ac3bd9f69824f232405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1527f8ba378dd9134bac0c537e2b8c3a24acd0bb43c654780b5925a2c949f748\",\"dweb:/ipfs/QmZC5KLDySGoZxHf2uPbb5MEWh66hp7DJJjCLzG2PZBD5Y\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/adapters/OZUUPSOwnableAdapter.sol":{"OZUUPSOwnableAdapter":{"abi":[{"inputs":[{"internalType":"address","name":"_proxyUpdater","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxyUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9346":{"entryPoint":null,"id":9346,"parameterSlots":1,"returnSlots":0},"@_9434":{"entryPoint":null,"id":9434,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":180,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:722:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"},{"body":{"nodeType":"YulBlock","src":"483:237:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:61"},"nodeType":"YulFunctionCall","src":"493:21:61"},"nodeType":"YulExpressionStatement","src":"493:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:61"},"nodeType":"YulFunctionCall","src":"530:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:61","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:61"},"nodeType":"YulFunctionCall","src":"523:30:61"},"nodeType":"YulExpressionStatement","src":"523:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:61"},"nodeType":"YulFunctionCall","src":"569:18:61"},{"hexValue":"4f5a5555505342617365416461707465723a20757064617465722063616e6e6f","kind":"string","nodeType":"YulLiteral","src":"589:34:61","type":"","value":"OZUUPSBaseAdapter: updater canno"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:61"},"nodeType":"YulFunctionCall","src":"562:62:61"},"nodeType":"YulExpressionStatement","src":"562:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"644:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"655:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"640:3:61"},"nodeType":"YulFunctionCall","src":"640:18:61"},{"hexValue":"742062652061646472657373283029","kind":"string","nodeType":"YulLiteral","src":"660:17:61","type":"","value":"t be address(0)"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"633:6:61"},"nodeType":"YulFunctionCall","src":"633:45:61"},"nodeType":"YulExpressionStatement","src":"633:45:61"},{"nodeType":"YulAssignment","src":"687:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"699:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"710:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"695:3:61"},"nodeType":"YulFunctionCall","src":"695:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"687:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:61","type":""}],"src":"309:411:61"}]},"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_5d835ab46f128e1235b42554d967edc163fe2201ad1a21cb9573f463cd7161e8__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), \"OZUUPSBaseAdapter: updater canno\")\n        mstore(add(headStart, 96), \"t be address(0)\")\n        tail := add(headStart, 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b506040516106c23803806106c283398101604081905261002f916100b4565b806001600160a01b0381166100a25760405162461bcd60e51b815260206004820152602f60248201527f4f5a5555505342617365416461707465723a20757064617465722063616e6e6f60448201526e74206265206164647265737328302960881b606482015260840160405180910390fd5b6001600160a01b0316608052506100e4565b6000602082840312156100c657600080fd5b81516001600160a01b03811681146100dd57600080fd5b9392505050565b6080516105bd61010560003960008181609901526101cd01526105bd6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a36600461039b565b61010a565b005b61007f61008f3660046103d4565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f236600461039b565b610294565b61007f610105366004610427565b6102e8565b6040517f93af029200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906393af0292906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166366aa56c56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b5050505050565b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015283169063f2fde38b9060240161015a565b6040517f1ea9470200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631ea947029061033e9086908690869060040161052b565b600060405180830381600087803b15801561035857600080fd5b505af115801561036c573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039857600080fd5b50565b600080604083850312156103ae57600080fd5b82356103b981610376565b915060208301356103c981610376565b809150509250929050565b6000602082840312156103e657600080fd5b81356103f181610376565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561043d57600080fd5b843561044881610376565b935060208501359250604085013560ff8116811461046557600080fd5b9150606085013567ffffffffffffffff8082111561048257600080fd5b818701915087601f83011261049657600080fd5b8135818111156104a8576104a86103f8565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104ee576104ee6103f8565b816040528281528a602084870101111561050757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b8381526000602060ff85168184015260606040840152835180606085015260005b818110156105685785810183015185820160800152820161054c565b8181111561057a576000608083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016080019594505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x6C2 CODESIZE SUB DUP1 PUSH2 0x6C2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A5555505342617365416461707465723A20757064617465722063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x742062652061646472657373283029 PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE POP PUSH2 0xE4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x5BD PUSH2 0x105 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x99 ADD MSTORE PUSH2 0x1CD ADD MSTORE PUSH2 0x5BD 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x39B JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4 JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x39B JUMP JUMPDEST PUSH2 0x294 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x427 JUMP JUMPDEST PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x93AF029200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x93AF0292 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x66AA56C5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH2 0x15A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x1EA94702 SWAP1 PUSH2 0x33E SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3B9 DUP2 PUSH2 0x376 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3C9 DUP2 PUSH2 0x376 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3F1 DUP2 PUSH2 0x376 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x448 DUP2 PUSH2 0x376 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4A8 JUMPI PUSH2 0x4A8 PUSH2 0x3F8 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 0x4EE JUMPI PUSH2 0x4EE PUSH2 0x3F8 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x507 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xFF DUP6 AND DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x568 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x54C JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x57A JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"403:498:45:-:0;;;542:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;595:13;-1:-1:-1;;;;;1008:27:44;;1000:87;;;;-1:-1:-1;;;1000:87:44;;511:2:61;1000:87:44;;;493:21:61;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:61;;;633:45;695:19;;1000:87:44;;;;;;;;-1:-1:-1;;;;;1097:28:44;;;-1:-1:-1;403:498:45;;14:290:61;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;309:411::-;403:498:45;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@changeProxyAdmin_9451":{"entryPoint":660,"id":9451,"parameterSlots":2,"returnSlots":0},"@finalizeUpgrade_9382":{"entryPoint":266,"id":9382,"parameterSlots":2,"returnSlots":0},"@initiateUpgrade_9366":{"entryPoint":400,"id":9366,"parameterSlots":1,"returnSlots":0},"@proxyUpdater_9325":{"entryPoint":null,"id":9325,"parameterSlots":0,"returnSlots":0},"@setStorage_9404":{"entryPoint":744,"id":9404,"parameterSlots":4,"returnSlots":0},"abi_decode_tuple_t_address_payable":{"entryPoint":980,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_address":{"entryPoint":923,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr":{"entryPoint":1063,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1323,"id":null,"parameterSlots":4,"returnSlots":1},"panic_error_0x41":{"entryPoint":1016,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address_payable":{"entryPoint":886,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3464:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"67:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"154:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"163:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"166:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"156:6:61"},"nodeType":"YulFunctionCall","src":"156:12:61"},"nodeType":"YulExpressionStatement","src":"156:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"90:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"101:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"108:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"97:3:61"},"nodeType":"YulFunctionCall","src":"97:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"87:2:61"},"nodeType":"YulFunctionCall","src":"87:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"80:6:61"},"nodeType":"YulFunctionCall","src":"80:73:61"},"nodeType":"YulIf","src":"77:93:61"}]},"name":"validator_revert_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"56:5:61","type":""}],"src":"14:162:61"},{"body":{"nodeType":"YulBlock","src":"276:317:61","statements":[{"body":{"nodeType":"YulBlock","src":"322:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"331:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"334:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"324:6:61"},"nodeType":"YulFunctionCall","src":"324:12:61"},"nodeType":"YulExpressionStatement","src":"324:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"297:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"306:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"293:3:61"},"nodeType":"YulFunctionCall","src":"293:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"318:2:61","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"289:3:61"},"nodeType":"YulFunctionCall","src":"289:32:61"},"nodeType":"YulIf","src":"286:52:61"},{"nodeType":"YulVariableDeclaration","src":"347:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"360:12:61"},"nodeType":"YulFunctionCall","src":"360:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"351:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"425:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"392:32:61"},"nodeType":"YulFunctionCall","src":"392:39:61"},"nodeType":"YulExpressionStatement","src":"392:39:61"},{"nodeType":"YulAssignment","src":"440:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"450:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"440:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"464:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"496:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"507:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"492:3:61"},"nodeType":"YulFunctionCall","src":"492:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"479:12:61"},"nodeType":"YulFunctionCall","src":"479:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"468:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"553:7:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"520:32:61"},"nodeType":"YulFunctionCall","src":"520:41:61"},"nodeType":"YulExpressionStatement","src":"520:41:61"},{"nodeType":"YulAssignment","src":"570:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"580:7:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"570:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"234:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"245:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"257:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"265:6:61","type":""}],"src":"181:412:61"},{"body":{"nodeType":"YulBlock","src":"676:185:61","statements":[{"body":{"nodeType":"YulBlock","src":"722:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:61"},"nodeType":"YulFunctionCall","src":"724:12:61"},"nodeType":"YulExpressionStatement","src":"724:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"697:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"706:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"693:3:61"},"nodeType":"YulFunctionCall","src":"693:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"718:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"689:3:61"},"nodeType":"YulFunctionCall","src":"689:32:61"},"nodeType":"YulIf","src":"686:52:61"},{"nodeType":"YulVariableDeclaration","src":"747:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"773:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"760:12:61"},"nodeType":"YulFunctionCall","src":"760:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"751:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"825:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"792:32:61"},"nodeType":"YulFunctionCall","src":"792:39:61"},"nodeType":"YulExpressionStatement","src":"792:39:61"},{"nodeType":"YulAssignment","src":"840:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"850:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"840:6:61"}]}]},"name":"abi_decode_tuple_t_address_payable","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"642:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"653:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"665:6:61","type":""}],"src":"598:263:61"},{"body":{"nodeType":"YulBlock","src":"967:125:61","statements":[{"nodeType":"YulAssignment","src":"977:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"989:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1000:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"985:3:61"},"nodeType":"YulFunctionCall","src":"985:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"977:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1019:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1034:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1042:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1030:3:61"},"nodeType":"YulFunctionCall","src":"1030:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1012:6:61"},"nodeType":"YulFunctionCall","src":"1012:74:61"},"nodeType":"YulExpressionStatement","src":"1012:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"936:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"947:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"958:4:61","type":""}],"src":"866:226:61"},{"body":{"nodeType":"YulBlock","src":"1129:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1139:6:61"},"nodeType":"YulFunctionCall","src":"1139:88:61"},"nodeType":"YulExpressionStatement","src":"1139:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1243:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1246:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1236:6:61"},"nodeType":"YulFunctionCall","src":"1236:15:61"},"nodeType":"YulExpressionStatement","src":"1236:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1270:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1260:6:61"},"nodeType":"YulFunctionCall","src":"1260:15:61"},"nodeType":"YulExpressionStatement","src":"1260:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1097:184:61"},{"body":{"nodeType":"YulBlock","src":"1422:1229:61","statements":[{"body":{"nodeType":"YulBlock","src":"1469:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1478:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1481:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1471:6:61"},"nodeType":"YulFunctionCall","src":"1471:12:61"},"nodeType":"YulExpressionStatement","src":"1471:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1443:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1452:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1439:3:61"},"nodeType":"YulFunctionCall","src":"1439:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1464:3:61","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1435:3:61"},"nodeType":"YulFunctionCall","src":"1435:33:61"},"nodeType":"YulIf","src":"1432:53:61"},{"nodeType":"YulVariableDeclaration","src":"1494:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1520:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1507:12:61"},"nodeType":"YulFunctionCall","src":"1507:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1498:5:61","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1572:5:61"}],"functionName":{"name":"validator_revert_address_payable","nodeType":"YulIdentifier","src":"1539:32:61"},"nodeType":"YulFunctionCall","src":"1539:39:61"},"nodeType":"YulExpressionStatement","src":"1539:39:61"},{"nodeType":"YulAssignment","src":"1587:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"1597:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1587:6:61"}]},{"nodeType":"YulAssignment","src":"1611:42:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1638:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1649:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1634:3:61"},"nodeType":"YulFunctionCall","src":"1634:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1621:12:61"},"nodeType":"YulFunctionCall","src":"1621:32:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1611:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1662:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1694:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1705:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1690:3:61"},"nodeType":"YulFunctionCall","src":"1690:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1677:12:61"},"nodeType":"YulFunctionCall","src":"1677:32:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1666:7:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1761:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1770:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1773:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1763:6:61"},"nodeType":"YulFunctionCall","src":"1763:12:61"},"nodeType":"YulExpressionStatement","src":"1763:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1731:7:61"},{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1744:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"1753:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1740:3:61"},"nodeType":"YulFunctionCall","src":"1740:18:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1728:2:61"},"nodeType":"YulFunctionCall","src":"1728:31:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1721:6:61"},"nodeType":"YulFunctionCall","src":"1721:39:61"},"nodeType":"YulIf","src":"1718:59:61"},{"nodeType":"YulAssignment","src":"1786:17:61","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1796:7:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1786:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"1812:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1843:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1854:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1839:3:61"},"nodeType":"YulFunctionCall","src":"1839:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1826:12:61"},"nodeType":"YulFunctionCall","src":"1826:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1816:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1867:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1877:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1871:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1922:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1934:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1924:6:61"},"nodeType":"YulFunctionCall","src":"1924:12:61"},"nodeType":"YulExpressionStatement","src":"1924:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1910:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1918:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:61"},"nodeType":"YulFunctionCall","src":"1907:14:61"},"nodeType":"YulIf","src":"1904:34:61"},{"nodeType":"YulVariableDeclaration","src":"1947:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1961:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"1972:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1957:3:61"},"nodeType":"YulFunctionCall","src":"1957:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1951:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2027:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2036:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2039:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2029:6:61"},"nodeType":"YulFunctionCall","src":"2029:12:61"},"nodeType":"YulExpressionStatement","src":"2029:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2006:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2010:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:61"},"nodeType":"YulFunctionCall","src":"2002:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2017:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1998:3:61"},"nodeType":"YulFunctionCall","src":"1998:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1991:6:61"},"nodeType":"YulFunctionCall","src":"1991:35:61"},"nodeType":"YulIf","src":"1988:55:61"},{"nodeType":"YulVariableDeclaration","src":"2052:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2075:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2062:12:61"},"nodeType":"YulFunctionCall","src":"2062:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2056:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2101:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2103:16:61"},"nodeType":"YulFunctionCall","src":"2103:18:61"},"nodeType":"YulExpressionStatement","src":"2103:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2093:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2097:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2090:2:61"},"nodeType":"YulFunctionCall","src":"2090:10:61"},"nodeType":"YulIf","src":"2087:36:61"},{"nodeType":"YulVariableDeclaration","src":"2132:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2142:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2136:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2217:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2237:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2231:5:61"},"nodeType":"YulFunctionCall","src":"2231:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2221:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2249:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2271:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2295:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2299:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2291:3:61"},"nodeType":"YulFunctionCall","src":"2291:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2306:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2287:3:61"},"nodeType":"YulFunctionCall","src":"2287:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"2311:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2283:3:61"},"nodeType":"YulFunctionCall","src":"2283:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"2316:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2279:3:61"},"nodeType":"YulFunctionCall","src":"2279:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:61"},"nodeType":"YulFunctionCall","src":"2267:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2253:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2379:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2381:16:61"},"nodeType":"YulFunctionCall","src":"2381:18:61"},"nodeType":"YulExpressionStatement","src":"2381:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2338:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2350:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2335:2:61"},"nodeType":"YulFunctionCall","src":"2335:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2358:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2370:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2355:2:61"},"nodeType":"YulFunctionCall","src":"2355:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2332:2:61"},"nodeType":"YulFunctionCall","src":"2332:46:61"},"nodeType":"YulIf","src":"2329:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2417:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2421:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2410:6:61"},"nodeType":"YulFunctionCall","src":"2410:22:61"},"nodeType":"YulExpressionStatement","src":"2410:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2448:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2456:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2441:6:61"},"nodeType":"YulFunctionCall","src":"2441:18:61"},"nodeType":"YulExpressionStatement","src":"2441:18:61"},{"body":{"nodeType":"YulBlock","src":"2505:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2517:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2507:6:61"},"nodeType":"YulFunctionCall","src":"2507:12:61"},"nodeType":"YulExpressionStatement","src":"2507:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2482:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2486:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2478:3:61"},"nodeType":"YulFunctionCall","src":"2478:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"2491:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2474:3:61"},"nodeType":"YulFunctionCall","src":"2474:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2496:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2471:2:61"},"nodeType":"YulFunctionCall","src":"2471:33:61"},"nodeType":"YulIf","src":"2468:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2547:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2555:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2543:3:61"},"nodeType":"YulFunctionCall","src":"2543:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2564:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2568:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2560:3:61"},"nodeType":"YulFunctionCall","src":"2560:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2573:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2530:12:61"},"nodeType":"YulFunctionCall","src":"2530:46:61"},"nodeType":"YulExpressionStatement","src":"2530:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2600:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"2608:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2596:3:61"},"nodeType":"YulFunctionCall","src":"2596:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"2613:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:61"},"nodeType":"YulFunctionCall","src":"2592:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"2618:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2585:6:61"},"nodeType":"YulFunctionCall","src":"2585:35:61"},"nodeType":"YulExpressionStatement","src":"2585:35:61"},{"nodeType":"YulAssignment","src":"2629:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2639:6:61"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2629:6:61"}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1364:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1375:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1387:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1395:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1403:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1411:6:61","type":""}],"src":"1286:1365:61"},{"body":{"nodeType":"YulBlock","src":"2827:635:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2844:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"2855:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2837:6:61"},"nodeType":"YulFunctionCall","src":"2837:25:61"},"nodeType":"YulExpressionStatement","src":"2837:25:61"},{"nodeType":"YulVariableDeclaration","src":"2871:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2881:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2875:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2903:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2914:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2899:3:61"},"nodeType":"YulFunctionCall","src":"2899:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2923:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2931:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2919:3:61"},"nodeType":"YulFunctionCall","src":"2919:17:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2892:6:61"},"nodeType":"YulFunctionCall","src":"2892:45:61"},"nodeType":"YulExpressionStatement","src":"2892:45:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2957:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2968:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2953:3:61"},"nodeType":"YulFunctionCall","src":"2953:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2973:2:61","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2946:6:61"},"nodeType":"YulFunctionCall","src":"2946:30:61"},"nodeType":"YulExpressionStatement","src":"2946:30:61"},{"nodeType":"YulVariableDeclaration","src":"2985:27:61","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3005:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2999:5:61"},"nodeType":"YulFunctionCall","src":"2999:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2989:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3032:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3043:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3028:3:61"},"nodeType":"YulFunctionCall","src":"3028:18:61"},{"name":"length","nodeType":"YulIdentifier","src":"3048:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3021:6:61"},"nodeType":"YulFunctionCall","src":"3021:34:61"},"nodeType":"YulExpressionStatement","src":"3021:34:61"},{"nodeType":"YulVariableDeclaration","src":"3064:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3073:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3068:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3133:91:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3162:9:61"},{"name":"i","nodeType":"YulIdentifier","src":"3173:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3158:3:61"},"nodeType":"YulFunctionCall","src":"3158:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"3177:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3154:3:61"},"nodeType":"YulFunctionCall","src":"3154:27:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3197:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"3205:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3193:3:61"},"nodeType":"YulFunctionCall","src":"3193:14:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3209:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3189:3:61"},"nodeType":"YulFunctionCall","src":"3189:23:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3183:5:61"},"nodeType":"YulFunctionCall","src":"3183:30:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3147:6:61"},"nodeType":"YulFunctionCall","src":"3147:67:61"},"nodeType":"YulExpressionStatement","src":"3147:67:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3094:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3097:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3091:2:61"},"nodeType":"YulFunctionCall","src":"3091:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3105:19:61","statements":[{"nodeType":"YulAssignment","src":"3107:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3116:1:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3119:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3112:3:61"},"nodeType":"YulFunctionCall","src":"3112:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3107:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3087:3:61","statements":[]},"src":"3083:141:61"},{"body":{"nodeType":"YulBlock","src":"3258:67:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3287:9:61"},{"name":"length","nodeType":"YulIdentifier","src":"3298:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3283:3:61"},"nodeType":"YulFunctionCall","src":"3283:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"3307:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3279:3:61"},"nodeType":"YulFunctionCall","src":"3279:32:61"},{"kind":"number","nodeType":"YulLiteral","src":"3313:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3272:6:61"},"nodeType":"YulFunctionCall","src":"3272:43:61"},"nodeType":"YulExpressionStatement","src":"3272:43:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3239:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3242:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3236:2:61"},"nodeType":"YulFunctionCall","src":"3236:13:61"},"nodeType":"YulIf","src":"3233:92:61"},{"nodeType":"YulAssignment","src":"3334:122:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3350:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3369:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3377:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3365:3:61"},"nodeType":"YulFunctionCall","src":"3365:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3382:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3361:3:61"},"nodeType":"YulFunctionCall","src":"3361:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3346:3:61"},"nodeType":"YulFunctionCall","src":"3346:104:61"},{"kind":"number","nodeType":"YulLiteral","src":"3452:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3342:3:61"},"nodeType":"YulFunctionCall","src":"3342:114:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3334:4:61"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2780:9:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2791:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2799:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2807:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2818:4:61","type":""}],"src":"2656:806:61"}]},"contents":"{\n    { }\n    function validator_revert_address_payable(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address_payablet_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_payable(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address_payable(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(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 panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_address_payablet_bytes32t_uint8t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address_payable(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(eq(value_1, and(value_1, 0xff))) { revert(0, 0) }\n        value2 := value_1\n        let offset := calldataload(add(headStart, 96))\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        value3 := memPtr\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes_memory_ptr__to_t_bytes32_t_uint8_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        let _1 := 32\n        mstore(add(headStart, _1), and(value1, 0xff))\n        mstore(add(headStart, 64), 96)\n        let length := mload(value2)\n        mstore(add(headStart, 96), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 128), mload(add(add(value2, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 128), 0)\n        }\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 128)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9325":[{"length":32,"start":153},{"length":32,"start":461}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c80637bafa3c7116100505780637bafa3c7146100945780637eff275e146100e45780639bc6ee9a146100f757600080fd5b8063192957c81461006c578063479aa92714610081575b600080fd5b61007f61007a36600461039b565b61010a565b005b61007f61008f3660046103d4565b610190565b6100bb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100f236600461039b565b610294565b61007f610105366004610427565b6102e8565b6040517f93af029200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906393af0292906024015b600060405180830381600087803b15801561017457600080fd5b505af1158015610188573d6000803e3d6000fd5b505050505050565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152821690633659cfe690602401600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166366aa56c56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027957600080fd5b505af115801561028d573d6000803e3d6000fd5b5050505050565b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015283169063f2fde38b9060240161015a565b6040517f1ea9470200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631ea947029061033e9086908690869060040161052b565b600060405180830381600087803b15801561035857600080fd5b505af115801561036c573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039857600080fd5b50565b600080604083850312156103ae57600080fd5b82356103b981610376565b915060208301356103c981610376565b809150509250929050565b6000602082840312156103e657600080fd5b81356103f181610376565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561043d57600080fd5b843561044881610376565b935060208501359250604085013560ff8116811461046557600080fd5b9150606085013567ffffffffffffffff8082111561048257600080fd5b818701915087601f83011261049657600080fd5b8135818111156104a8576104a86103f8565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104ee576104ee6103f8565b816040528281528a602084870101111561050757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b8381526000602060ff85168184015260606040840152835180606085015260005b818110156105685785810183015185820160800152820161054c565b8181111561057a576000608083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016080019594505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7BAFA3C7 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x7BAFA3C7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x9BC6EE9A EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x192957C8 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x479AA927 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x39B JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4 JUMP JUMPDEST PUSH2 0x190 JUMP JUMPDEST PUSH2 0xBB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x39B JUMP JUMPDEST PUSH2 0x294 JUMP JUMPDEST PUSH2 0x7F PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x427 JUMP JUMPDEST PUSH2 0x2E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x93AF029200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x93AF0292 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x188 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x66AA56C5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH2 0x15A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1EA9470200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x1EA94702 SWAP1 PUSH2 0x33E SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x36C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3B9 DUP2 PUSH2 0x376 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3C9 DUP2 PUSH2 0x376 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3F1 DUP2 PUSH2 0x376 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x448 DUP2 PUSH2 0x376 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4A8 JUMPI PUSH2 0x4A8 PUSH2 0x3F8 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 0x4EE JUMPI PUSH2 0x4EE PUSH2 0x3F8 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x507 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 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xFF DUP6 AND DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x568 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x54C JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x57A JUMPI PUSH1 0x0 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"403:498:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1404:147:44;;;;;;:::i;:::-;;:::i;:::-;;1187:162;;;;;;:::i;:::-;;:::i;829:37::-;;;;;;;;1042:42:61;1030:55;;;1012:74;;1000:2;985:18;829:37:44;;;;;;;751:148:45;;;;;;:::i;:::-;;:::i;1606:213:44:-;;;;;;:::i;:::-;;:::i;1404:147::-;1497:47;;;;;:30;1030:55:61;;;1497:47:44;;;1012:74:61;1497:30:44;;;;;985:18:61;;1497:47:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1404:147;;:::o;1187:162::-;1255:45;;;;;:31;1287:12;1030:55:61;;1255:45:44;;;1012:74:61;1255:31:44;;;;;985:18:61;;1255:45:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1324:6;1310:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1187:162;:::o;751:148:45:-;848:44;;;;;:33;1030:55:61;;;848:44:45;;;1012:74:61;848:33:45;;;;;985:18:61;;848:44:45;866:226:61;1606:213:44;1757:55;;;;;:32;;;;;;:55;;1790:4;;1796:7;;1805:6;;1757:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1606:213;;;;:::o;14:162:61:-;108:42;101:5;97:54;90:5;87:65;77:93;;166:1;163;156:12;77:93;14:162;:::o;181:412::-;257:6;265;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;373:9;360:23;392:39;425:5;392:39;:::i;:::-;450:5;-1:-1:-1;507:2:61;492:18;;479:32;520:41;479:32;520:41;:::i;:::-;580:7;570:17;;;181:412;;;;;:::o;598:263::-;665:6;718:2;706:9;697:7;693:23;689:32;686:52;;;734:1;731;724:12;686:52;773:9;760:23;792:39;825:5;792:39;:::i;:::-;850:5;598:263;-1:-1:-1;;;598:263:61:o;1097:184::-;1149:77;1146:1;1139:88;1246:4;1243:1;1236:15;1270:4;1267:1;1260:15;1286:1365;1387:6;1395;1403;1411;1464:3;1452:9;1443:7;1439:23;1435:33;1432:53;;;1481:1;1478;1471:12;1432:53;1520:9;1507:23;1539:39;1572:5;1539:39;:::i;:::-;1597:5;-1:-1:-1;1649:2:61;1634:18;;1621:32;;-1:-1:-1;1705:2:61;1690:18;;1677:32;1753:4;1740:18;;1728:31;;1718:59;;1773:1;1770;1763:12;1718:59;1796:7;-1:-1:-1;1854:2:61;1839:18;;1826:32;1877:18;1907:14;;;1904:34;;;1934:1;1931;1924:12;1904:34;1972:6;1961:9;1957:22;1947:32;;2017:7;2010:4;2006:2;2002:13;1998:27;1988:55;;2039:1;2036;2029:12;1988:55;2075:2;2062:16;2097:2;2093;2090:10;2087:36;;;2103:18;;:::i;:::-;2237:2;2231:9;2299:4;2291:13;;2142:66;2287:22;;;2311:2;2283:31;2279:40;2267:53;;;2335:18;;;2355:22;;;2332:46;2329:72;;;2381:18;;:::i;:::-;2421:10;2417:2;2410:22;2456:2;2448:6;2441:18;2496:7;2491:2;2486;2482;2478:11;2474:20;2471:33;2468:53;;;2517:1;2514;2507:12;2468:53;2573:2;2568;2564;2560:11;2555:2;2547:6;2543:15;2530:46;2618:1;2613:2;2608;2600:6;2596:15;2592:24;2585:35;2639:6;2629:16;;;;;;;1286:1365;;;;;;;:::o;2656:806::-;2855:6;2844:9;2837:25;2818:4;2881:2;2931:4;2923:6;2919:17;2914:2;2903:9;2899:18;2892:45;2973:2;2968;2957:9;2953:18;2946:30;3005:6;2999:13;3048:6;3043:2;3032:9;3028:18;3021:34;3073:1;3083:141;3097:6;3094:1;3091:13;3083:141;;;3193:14;;;3189:23;;3183:30;3158:17;;;3177:3;3154:27;3147:67;3112:10;;3083:141;;;3242:6;3239:1;3236:13;3233:92;;;3313:1;3307:3;3298:6;3287:9;3283:22;3279:32;3272:43;3233:92;-1:-1:-1;3377:2:61;3365:15;3382:66;3361:88;3346:104;;;;3452:3;3342:114;;2656:806;-1:-1:-1;;;;;2656:806:61:o"},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","finalizeUpgrade(address,address)":"192957c8","initiateUpgrade(address)":"479aa927","proxyUpdater()":"7bafa3c7","setStorage(address,bytes32,uint8,bytes)":"9bc6ee9a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxyUpdater\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"params\":{\"_newAdmin\":\"Address of the new admin.\",\"_proxy\":\"Address of the proxy.\"}},\"constructor\":{\"params\":{\"_proxyUpdater\":\"Address of the ProxyUpdater contract.\"}},\"finalizeUpgrade(address,address)\":{\"params\":{\"_implementation\":\"Address of the proxy's final implementation.\",\"_proxy\":\"Address of the proxy.\"}},\"initiateUpgrade(address)\":{\"params\":{\"_proxy\":\"Address of the proxy.\"}},\"setStorage(address,bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_proxy\":\"Address of the proxy to modify.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] (inclusive).\"}}},\"title\":\"OZUUPSOwnableAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"notice\":\"Transfers ownership of the proxy using the Ownable access control mechanism.\"},\"finalizeUpgrade(address,address)\":{\"notice\":\"Complete a deployment or upgrade of a proxy.\"},\"initiateUpgrade(address)\":{\"notice\":\"Initiate a deployment or upgrade of a proxy.\"},\"proxyUpdater()\":{\"notice\":\"Address of the ProxyUpdater contract that will be set as the OpenZeppelin UUPS proxy's implementation during the deployment.\"},\"setStorage(address,bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset.\"}},\"notice\":\"Proxy adapter for an OpenZeppelin UUPS proxy that uses OwnableUpgradeable for access control.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/OZUUPSOwnableAdapter.sol\":\"OZUUPSOwnableAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/adapters/OZUUPSBaseAdapter.sol\":{\"keccak256\":\"0x8af3ac10ff6c92d86cdc1b2384237f9a8c1a6fb1a722a79a2174e0b491742797\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04eb5078d8d2fe293bd57deed043b9441b08b45a1b04431e424eb3069270b2ff\",\"dweb:/ipfs/QmaP93xL8qHBczUSixiAiHx8CFejbUG3HsD1hfA5F4Abyb\"]},\"contracts/adapters/OZUUPSOwnableAdapter.sol\":{\"keccak256\":\"0x7ac4d94ea5684d6889f2a7b72cb5f60791e82e99caecad1fd2af4b8fdee11691\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8dffcb5fe5e6890e62a4d2383a81792f1386ef7afcdba412342424fa4f47173\",\"dweb:/ipfs/QmS8tWrkpQryJejkp5mVMDUAPqQcR8yesrChw3gHaZj4s9\"]},\"contracts/interfaces/IProxyAdapter.sol\":{\"keccak256\":\"0x48f5f46c6fe6e36f52d861783e8bba551d312a41cd0abee9d256314e6b720ded\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://081672af4de6cbd120e7cda0ffee02da555550ec3858980bc76069c0d2c4e55c\",\"dweb:/ipfs/QmSNFy1mHdxSbKUvP5DJt8euJt1Gun356dqkfZHAdmUf2W\"]},\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]},\"contracts/updaters/OZUUPSUpdater.sol\":{\"keccak256\":\"0xdcbbfc4e544c811a9ae1a5436b1d43ab59926766c4442c93746757bdd1a7fbcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a75f8e1d484e4c5b05116c233f71f42f0498200599a6d84bb7f7aac3b4a2a145\",\"dweb:/ipfs/QmUTQHPxWHtZtMZ17KewyqZy76Eunr1RgQqvREMV23vW6W\"]},\"contracts/updaters/ProxyUpdater.sol\":{\"keccak256\":\"0x7fd8c8b7f1f5eb437bc7f6217a6385c60227c8af7a7c8ac3bd9f69824f232405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1527f8ba378dd9134bac0c537e2b8c3a24acd0bb43c654780b5925a2c949f748\",\"dweb:/ipfs/QmZC5KLDySGoZxHf2uPbb5MEWh66hp7DJJjCLzG2PZBD5Y\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/adapters/cross-chain/ConnextCrossChainAdapter.sol":{"ConnextCrossChainAdapter":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"_orgID","type":"bytes32"},{"components":[{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"version","type":"tuple"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"managerInitializerData","type":"bytes"}],"internalType":"struct RegistrationInfo","name":"_registration","type":"tuple"},{"components":[{"internalType":"address payable","name":"originEndpoint","type":"address"},{"internalType":"uint32","name":"destDomainID","type":"uint32"},{"internalType":"uint256","name":"relayerFee","type":"uint256"}],"internalType":"struct CrossChainMessageInfo","name":"_message","type":"tuple"}],"name":"initiateRegistration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9478":{"entryPoint":null,"id":9478,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":64,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:306:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:61"},"nodeType":"YulFunctionCall","src":"143:12:61"},"nodeType":"YulExpressionStatement","src":"143:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:61"},"nodeType":"YulFunctionCall","src":"112:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:61"},"nodeType":"YulFunctionCall","src":"108:32:61"},"nodeType":"YulIf","src":"105:52:61"},{"nodeType":"YulVariableDeclaration","src":"166:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:61"},"nodeType":"YulFunctionCall","src":"179:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:61"},"nodeType":"YulFunctionCall","src":"260:12:61"},"nodeType":"YulExpressionStatement","src":"260:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:61"},"nodeType":"YulFunctionCall","src":"239:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:61"},"nodeType":"YulFunctionCall","src":"235:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:61"},"nodeType":"YulFunctionCall","src":"224:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:61"},"nodeType":"YulFunctionCall","src":"214:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:61"},"nodeType":"YulFunctionCall","src":"207:50:61"},"nodeType":"YulIf","src":"204:70:61"},{"nodeType":"YulAssignment","src":"283:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:61"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:61","type":""}],"src":"14:290:61"}]},"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":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b506040516105fc3803806105fc83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161056b6100916000396000818160400152610173015261056b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063e787bc691461008b575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009e610099366004610361565b6100a0565b005b6000838360200151846000015185604001516040516024016100c59493929190610485565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f31662fd6000000000000000000000000000000000000000000000000000000001790528451858301519186015192517f8aac16ba00000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff1692638aac16ba926101a6917f0000000000000000000000000000000000000000000000000000000000000000906000903390829081908b906004016104df565b60206040518083038185885af11580156101c4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906101e99190610545565b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610242576102426101f0565b60405290565b73ffffffffffffffffffffffffffffffffffffffff8116811461026a57600080fd5b50565b803561027881610248565b919050565b600082601f83011261028e57600080fd5b813567ffffffffffffffff808211156102a9576102a96101f0565b604051601f8301601f19908116603f011681019082821181831017156102d1576102d16101f0565b816040528381528660208588010111156102ea57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006060828403121561031c57600080fd5b61032461021f565b9050813561033181610248565b8152602082013563ffffffff8116811461034a57600080fd5b806020830152506040820135604082015292915050565b600080600060a0848603121561037657600080fd5b83359250602084013567ffffffffffffffff8082111561039557600080fd5b9085019081870360a08112156103aa57600080fd5b6103b261021f565b60608212156103c057600080fd5b6103c861021f565b91508335825260208401356020830152604084013560408301528181526103f16060850161026d565b6020820152608084013591508282111561040a57600080fd5b6104168983860161027d565b60408201528095505050505061042f856040860161030a565b90509250925092565b6000815180845260005b8181101561045e57602081850181015186830182015201610442565b81811115610470576000602083870101525b50601f01601f19169290920160200192915050565b84815273ffffffffffffffffffffffffffffffffffffffff8416602082015282516040820152602083015160608201526040830151608082015260c060a082015260006104d560c0830184610438565b9695505050505050565b63ffffffff88168152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401528087166060840152508460808301528360a083015260e060c083015261053860e0830184610438565b9998505050505050505050565b60006020828403121561055757600080fd5b505191905056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x5FC CODESIZE SUB DUP1 PUSH2 0x5FC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x40 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x70 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x56B PUSH2 0x91 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x40 ADD MSTORE PUSH2 0x173 ADD MSTORE PUSH2 0x56B 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE787BC69 EQ PUSH2 0x8B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x361 JUMP JUMPDEST PUSH2 0xA0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP4 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xC5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x31662FD600000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE DUP5 MLOAD DUP6 DUP4 ADD MLOAD SWAP2 DUP7 ADD MLOAD SWAP3 MLOAD PUSH32 0x8AAC16BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP4 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 PUSH4 0x8AAC16BA SWAP3 PUSH2 0x1A6 SWAP2 PUSH32 0x0 SWAP1 PUSH1 0x0 SWAP1 CALLER SWAP1 DUP3 SWAP1 DUP2 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C4 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 0x1E9 SWAP2 SWAP1 PUSH2 0x545 JUMP JUMPDEST POP 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 0x242 JUMPI PUSH2 0x242 PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x278 DUP2 PUSH2 0x248 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2A9 JUMPI PUSH2 0x2A9 PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2D1 JUMPI PUSH2 0x2D1 PUSH2 0x1F0 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x2EA 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 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324 PUSH2 0x21F JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x331 DUP2 PUSH2 0x248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP6 ADD SWAP1 DUP2 DUP8 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B2 PUSH2 0x21F JUMP JUMPDEST PUSH1 0x60 DUP3 SLT ISZERO PUSH2 0x3C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C8 PUSH2 0x21F JUMP JUMPDEST SWAP2 POP DUP4 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x3F1 PUSH1 0x60 DUP6 ADD PUSH2 0x26D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP5 ADD CALLDATALOAD SWAP2 POP DUP3 DUP3 GT ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x416 DUP10 DUP4 DUP7 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE DUP1 SWAP6 POP POP POP POP POP PUSH2 0x42F DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x30A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x45E JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x442 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D5 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x438 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND DUP2 MSTORE PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x20 DUP5 ADD MSTORE DUP1 DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE DUP1 DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE POP DUP5 PUSH1 0x80 DUP4 ADD MSTORE DUP4 PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xE0 PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x538 PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x438 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"402:1275:46:-:0;;;504:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;545:20:46;;;402:1275;;14:290:61;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:61;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:61:o;:::-;402:1275:46;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@initiateRegistration_9528":{"entryPoint":160,"id":9528,"parameterSlots":3,"returnSlots":0},"@registry_9468":{"entryPoint":null,"id":9468,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":621,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":637,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_CrossChainMessageInfo":{"entryPoint":778,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":1349,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_struct$_RegistrationInfo_$5575_memory_ptrt_struct$_CrossChainMessageInfo_$5560_memory_ptr":{"entryPoint":865,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_bytes":{"entryPoint":1080,"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_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1157,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint32_t_address_t_address_t_address_t_rational_0_by_1_t_rational_0_by_1_t_bytes_memory_ptr__to_t_uint32_t_address_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1247,"id":null,"parameterSlots":8,"returnSlots":1},"allocate_memory":{"entryPoint":543,"id":null,"parameterSlots":0,"returnSlots":1},"panic_error_0x41":{"entryPoint":496,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":584,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5672:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:125:61","statements":[{"nodeType":"YulAssignment","src":"125:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:61"},"nodeType":"YulFunctionCall","src":"133:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"182:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"190:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"178:3:61"},"nodeType":"YulFunctionCall","src":"178:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:61"},"nodeType":"YulFunctionCall","src":"160:74:61"},"nodeType":"YulExpressionStatement","src":"160:74:61"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:61","type":""}],"src":"14:226:61"},{"body":{"nodeType":"YulBlock","src":"277:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"294:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"297:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"287:6:61"},"nodeType":"YulFunctionCall","src":"287:88:61"},"nodeType":"YulExpressionStatement","src":"287:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"391:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"394:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"384:6:61"},"nodeType":"YulFunctionCall","src":"384:15:61"},"nodeType":"YulExpressionStatement","src":"384:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"415:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"418:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"408:6:61"},"nodeType":"YulFunctionCall","src":"408:15:61"},"nodeType":"YulExpressionStatement","src":"408:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"245:184:61"},{"body":{"nodeType":"YulBlock","src":"475:207:61","statements":[{"nodeType":"YulAssignment","src":"485:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"501:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"495:5:61"},"nodeType":"YulFunctionCall","src":"495:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"485:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"513:35:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"535:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"543:4:61","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"531:3:61"},"nodeType":"YulFunctionCall","src":"531:17:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"517:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"623:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"625:16:61"},"nodeType":"YulFunctionCall","src":"625:18:61"},"nodeType":"YulExpressionStatement","src":"625:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"566:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"578:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"563:2:61"},"nodeType":"YulFunctionCall","src":"563:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"602:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"614:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"599:2:61"},"nodeType":"YulFunctionCall","src":"599:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"560:2:61"},"nodeType":"YulFunctionCall","src":"560:62:61"},"nodeType":"YulIf","src":"557:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"661:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"665:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"654:6:61"},"nodeType":"YulFunctionCall","src":"654:22:61"},"nodeType":"YulExpressionStatement","src":"654:22:61"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"464:6:61","type":""}],"src":"434:248:61"},{"body":{"nodeType":"YulBlock","src":"732:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"819:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"828:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"831:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"821:6:61"},"nodeType":"YulFunctionCall","src":"821:12:61"},"nodeType":"YulExpressionStatement","src":"821:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"755:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"766:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"773:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"762:3:61"},"nodeType":"YulFunctionCall","src":"762:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"752:2:61"},"nodeType":"YulFunctionCall","src":"752:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"745:6:61"},"nodeType":"YulFunctionCall","src":"745:73:61"},"nodeType":"YulIf","src":"742:93:61"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"721:5:61","type":""}],"src":"687:154:61"},{"body":{"nodeType":"YulBlock","src":"895:85:61","statements":[{"nodeType":"YulAssignment","src":"905:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"927:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"914:12:61"},"nodeType":"YulFunctionCall","src":"914:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"905:5:61"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"968:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"943:24:61"},"nodeType":"YulFunctionCall","src":"943:31:61"},"nodeType":"YulExpressionStatement","src":"943:31:61"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"874:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"885:5:61","type":""}],"src":"846:134:61"},{"body":{"nodeType":"YulBlock","src":"1037:725:61","statements":[{"body":{"nodeType":"YulBlock","src":"1086:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1095:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1098:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1088:6:61"},"nodeType":"YulFunctionCall","src":"1088:12:61"},"nodeType":"YulExpressionStatement","src":"1088:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1065:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1073:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1061:3:61"},"nodeType":"YulFunctionCall","src":"1061:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"1080:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1057:3:61"},"nodeType":"YulFunctionCall","src":"1057:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1050:6:61"},"nodeType":"YulFunctionCall","src":"1050:35:61"},"nodeType":"YulIf","src":"1047:55:61"},{"nodeType":"YulVariableDeclaration","src":"1111:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1134:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1121:12:61"},"nodeType":"YulFunctionCall","src":"1121:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1115:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1150:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1160:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1154:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1201:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1203:16:61"},"nodeType":"YulFunctionCall","src":"1203:18:61"},"nodeType":"YulExpressionStatement","src":"1203:18:61"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1193:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"1197:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1190:2:61"},"nodeType":"YulFunctionCall","src":"1190:10:61"},"nodeType":"YulIf","src":"1187:36:61"},{"nodeType":"YulVariableDeclaration","src":"1232:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1242:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1236:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1317:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1337:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1331:5:61"},"nodeType":"YulFunctionCall","src":"1331:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1321:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1349:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1371:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1395:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1399:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1391:3:61"},"nodeType":"YulFunctionCall","src":"1391:13:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1406:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1387:3:61"},"nodeType":"YulFunctionCall","src":"1387:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"1411:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:61"},"nodeType":"YulFunctionCall","src":"1383:31:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1416:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1379:3:61"},"nodeType":"YulFunctionCall","src":"1379:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1367:3:61"},"nodeType":"YulFunctionCall","src":"1367:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1353:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1479:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1481:16:61"},"nodeType":"YulFunctionCall","src":"1481:18:61"},"nodeType":"YulExpressionStatement","src":"1481:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1438:10:61"},{"name":"_2","nodeType":"YulIdentifier","src":"1450:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1435:2:61"},"nodeType":"YulFunctionCall","src":"1435:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1458:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1470:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1455:2:61"},"nodeType":"YulFunctionCall","src":"1455:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1432:2:61"},"nodeType":"YulFunctionCall","src":"1432:46:61"},"nodeType":"YulIf","src":"1429:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1517:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1521:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1510:6:61"},"nodeType":"YulFunctionCall","src":"1510:22:61"},"nodeType":"YulExpressionStatement","src":"1510:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1548:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1556:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1541:6:61"},"nodeType":"YulFunctionCall","src":"1541:18:61"},"nodeType":"YulExpressionStatement","src":"1541:18:61"},{"body":{"nodeType":"YulBlock","src":"1607:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1616:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1619:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1609:6:61"},"nodeType":"YulFunctionCall","src":"1609:12:61"},"nodeType":"YulExpressionStatement","src":"1609:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1582:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1590:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1578:3:61"},"nodeType":"YulFunctionCall","src":"1578:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1595:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1574:3:61"},"nodeType":"YulFunctionCall","src":"1574:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"1602:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1571:2:61"},"nodeType":"YulFunctionCall","src":"1571:35:61"},"nodeType":"YulIf","src":"1568:55:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1649:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1657:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1645:3:61"},"nodeType":"YulFunctionCall","src":"1645:17:61"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1668:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1676:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1664:3:61"},"nodeType":"YulFunctionCall","src":"1664:17:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1683:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1632:12:61"},"nodeType":"YulFunctionCall","src":"1632:54:61"},"nodeType":"YulExpressionStatement","src":"1632:54:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1710:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1718:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1706:3:61"},"nodeType":"YulFunctionCall","src":"1706:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1723:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1702:3:61"},"nodeType":"YulFunctionCall","src":"1702:26:61"},{"kind":"number","nodeType":"YulLiteral","src":"1730:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1695:6:61"},"nodeType":"YulFunctionCall","src":"1695:37:61"},"nodeType":"YulExpressionStatement","src":"1695:37:61"},{"nodeType":"YulAssignment","src":"1741:15:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1750:6:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1741:5:61"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1011:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"1019:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1027:5:61","type":""}],"src":"985:777:61"},{"body":{"nodeType":"YulBlock","src":"1845:456:61","statements":[{"body":{"nodeType":"YulBlock","src":"1889:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1898:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1901:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1891:6:61"},"nodeType":"YulFunctionCall","src":"1891:12:61"},"nodeType":"YulExpressionStatement","src":"1891:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"1866:3:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1871:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1862:3:61"},"nodeType":"YulFunctionCall","src":"1862:19:61"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:61","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1858:3:61"},"nodeType":"YulFunctionCall","src":"1858:30:61"},"nodeType":"YulIf","src":"1855:50:61"},{"nodeType":"YulAssignment","src":"1914:26:61","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1923:15:61"},"nodeType":"YulFunctionCall","src":"1923:17:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1914:5:61"}]},{"nodeType":"YulVariableDeclaration","src":"1949:38:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1977:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1964:12:61"},"nodeType":"YulFunctionCall","src":"1964:23:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1953:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2021:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1996:24:61"},"nodeType":"YulFunctionCall","src":"1996:33:61"},"nodeType":"YulExpressionStatement","src":"1996:33:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2045:5:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"2052:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2038:6:61"},"nodeType":"YulFunctionCall","src":"2038:22:61"},"nodeType":"YulExpressionStatement","src":"2038:22:61"},{"nodeType":"YulVariableDeclaration","src":"2069:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2101:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2112:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2097:3:61"},"nodeType":"YulFunctionCall","src":"2097:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2084:12:61"},"nodeType":"YulFunctionCall","src":"2084:32:61"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"2073:7:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2174:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2183:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2186:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2176:6:61"},"nodeType":"YulFunctionCall","src":"2176:12:61"},"nodeType":"YulExpressionStatement","src":"2176:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"2138:7:61"},{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"2151:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"2160:10:61","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2147:3:61"},"nodeType":"YulFunctionCall","src":"2147:24:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2135:2:61"},"nodeType":"YulFunctionCall","src":"2135:37:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2128:6:61"},"nodeType":"YulFunctionCall","src":"2128:45:61"},"nodeType":"YulIf","src":"2125:65:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2210:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"2217:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2206:3:61"},"nodeType":"YulFunctionCall","src":"2206:14:61"},{"name":"value_2","nodeType":"YulIdentifier","src":"2222:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2199:6:61"},"nodeType":"YulFunctionCall","src":"2199:31:61"},"nodeType":"YulExpressionStatement","src":"2199:31:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2250:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"2257:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2246:3:61"},"nodeType":"YulFunctionCall","src":"2246:14:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2279:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2290:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2275:3:61"},"nodeType":"YulFunctionCall","src":"2275:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2262:12:61"},"nodeType":"YulFunctionCall","src":"2262:32:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2239:6:61"},"nodeType":"YulFunctionCall","src":"2239:56:61"},"nodeType":"YulExpressionStatement","src":"2239:56:61"}]},"name":"abi_decode_struct_CrossChainMessageInfo","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1816:9:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"1827:3:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1835:5:61","type":""}],"src":"1767:534:61"},{"body":{"nodeType":"YulBlock","src":"2483:1028:61","statements":[{"body":{"nodeType":"YulBlock","src":"2530:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2539:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2542:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2532:6:61"},"nodeType":"YulFunctionCall","src":"2532:12:61"},"nodeType":"YulExpressionStatement","src":"2532:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2504:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"2513:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2500:3:61"},"nodeType":"YulFunctionCall","src":"2500:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"2525:3:61","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2496:3:61"},"nodeType":"YulFunctionCall","src":"2496:33:61"},"nodeType":"YulIf","src":"2493:53:61"},{"nodeType":"YulAssignment","src":"2555:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2578:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2565:12:61"},"nodeType":"YulFunctionCall","src":"2565:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2555:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"2597:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2628:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2639:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2624:3:61"},"nodeType":"YulFunctionCall","src":"2624:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2611:12:61"},"nodeType":"YulFunctionCall","src":"2611:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2601:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2652:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2662:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2656:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2707:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2716:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2719:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2709:6:61"},"nodeType":"YulFunctionCall","src":"2709:12:61"},"nodeType":"YulExpressionStatement","src":"2709:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2695:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2703:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2692:2:61"},"nodeType":"YulFunctionCall","src":"2692:14:61"},"nodeType":"YulIf","src":"2689:34:61"},{"nodeType":"YulVariableDeclaration","src":"2732:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2746:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"2757:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2742:3:61"},"nodeType":"YulFunctionCall","src":"2742:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2736:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2773:26:61","value":{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2787:7:61"},{"name":"_2","nodeType":"YulIdentifier","src":"2796:2:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2783:3:61"},"nodeType":"YulFunctionCall","src":"2783:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2777:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2824:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2833:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2836:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2826:6:61"},"nodeType":"YulFunctionCall","src":"2826:12:61"},"nodeType":"YulExpressionStatement","src":"2826:12:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2815:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2819:3:61","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2811:3:61"},"nodeType":"YulFunctionCall","src":"2811:12:61"},"nodeType":"YulIf","src":"2808:32:61"},{"nodeType":"YulVariableDeclaration","src":"2849:30:61","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2862:15:61"},"nodeType":"YulFunctionCall","src":"2862:17:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2853:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2905:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2914:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2917:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2907:6:61"},"nodeType":"YulFunctionCall","src":"2907:12:61"},"nodeType":"YulExpressionStatement","src":"2907:12:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2895:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2899:4:61","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2891:3:61"},"nodeType":"YulFunctionCall","src":"2891:13:61"},"nodeType":"YulIf","src":"2888:33:61"},{"nodeType":"YulVariableDeclaration","src":"2930:32:61","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2945:15:61"},"nodeType":"YulFunctionCall","src":"2945:17:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2934:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2978:7:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3000:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2987:12:61"},"nodeType":"YulFunctionCall","src":"2987:16:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2971:6:61"},"nodeType":"YulFunctionCall","src":"2971:33:61"},"nodeType":"YulExpressionStatement","src":"2971:33:61"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3024:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"3033:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3020:3:61"},"nodeType":"YulFunctionCall","src":"3020:16:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3055:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3059:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3051:3:61"},"nodeType":"YulFunctionCall","src":"3051:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3038:12:61"},"nodeType":"YulFunctionCall","src":"3038:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3013:6:61"},"nodeType":"YulFunctionCall","src":"3013:51:61"},"nodeType":"YulExpressionStatement","src":"3013:51:61"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3084:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"3093:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3080:3:61"},"nodeType":"YulFunctionCall","src":"3080:16:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3115:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3119:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3111:3:61"},"nodeType":"YulFunctionCall","src":"3111:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3098:12:61"},"nodeType":"YulFunctionCall","src":"3098:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3073:6:61"},"nodeType":"YulFunctionCall","src":"3073:51:61"},"nodeType":"YulExpressionStatement","src":"3073:51:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3140:5:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"3147:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3133:6:61"},"nodeType":"YulFunctionCall","src":"3133:22:61"},"nodeType":"YulExpressionStatement","src":"3133:22:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3175:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3182:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3171:3:61"},"nodeType":"YulFunctionCall","src":"3171:14:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3210:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3214:4:61","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3206:3:61"},"nodeType":"YulFunctionCall","src":"3206:13:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3187:18:61"},"nodeType":"YulFunctionCall","src":"3187:33:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3164:6:61"},"nodeType":"YulFunctionCall","src":"3164:57:61"},"nodeType":"YulExpressionStatement","src":"3164:57:61"},{"nodeType":"YulVariableDeclaration","src":"3230:42:61","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3263:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3267:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3259:3:61"},"nodeType":"YulFunctionCall","src":"3259:12:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3246:12:61"},"nodeType":"YulFunctionCall","src":"3246:26:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3234:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3301:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3310:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3313:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3303:6:61"},"nodeType":"YulFunctionCall","src":"3303:12:61"},"nodeType":"YulExpressionStatement","src":"3303:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3287:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3297:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3284:2:61"},"nodeType":"YulFunctionCall","src":"3284:16:61"},"nodeType":"YulIf","src":"3281:36:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3337:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3344:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3333:3:61"},"nodeType":"YulFunctionCall","src":"3333:14:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3370:2:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3374:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3366:3:61"},"nodeType":"YulFunctionCall","src":"3366:17:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3385:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3349:16:61"},"nodeType":"YulFunctionCall","src":"3349:44:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3326:6:61"},"nodeType":"YulFunctionCall","src":"3326:68:61"},"nodeType":"YulExpressionStatement","src":"3326:68:61"},{"nodeType":"YulAssignment","src":"3403:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"3413:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3403:6:61"}]},{"nodeType":"YulAssignment","src":"3427:78:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3481:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3492:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3477:3:61"},"nodeType":"YulFunctionCall","src":"3477:18:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3497:7:61"}],"functionName":{"name":"abi_decode_struct_CrossChainMessageInfo","nodeType":"YulIdentifier","src":"3437:39:61"},"nodeType":"YulFunctionCall","src":"3437:68:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3427:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_struct$_RegistrationInfo_$5575_memory_ptrt_struct$_CrossChainMessageInfo_$5560_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2433:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2444:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2456:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2464:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2472:6:61","type":""}],"src":"2306:1205:61"},{"body":{"nodeType":"YulBlock","src":"3565:481:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3575:26:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3595:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3589:5:61"},"nodeType":"YulFunctionCall","src":"3589:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3579:6:61","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3617:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"3622:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:61"},"nodeType":"YulFunctionCall","src":"3610:19:61"},"nodeType":"YulExpressionStatement","src":"3610:19:61"},{"nodeType":"YulVariableDeclaration","src":"3638:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3647:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3642:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3709:110:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3723:14:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3733:4:61","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3727:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3765:3:61"},{"name":"i","nodeType":"YulIdentifier","src":"3770:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3761:3:61"},"nodeType":"YulFunctionCall","src":"3761:11:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3774:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:61"},"nodeType":"YulFunctionCall","src":"3757:20:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3793:5:61"},{"name":"i","nodeType":"YulIdentifier","src":"3800:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3789:3:61"},"nodeType":"YulFunctionCall","src":"3789:13:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3804:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3785:3:61"},"nodeType":"YulFunctionCall","src":"3785:22:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3779:5:61"},"nodeType":"YulFunctionCall","src":"3779:29:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3750:6:61"},"nodeType":"YulFunctionCall","src":"3750:59:61"},"nodeType":"YulExpressionStatement","src":"3750:59:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3668:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3671:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3665:2:61"},"nodeType":"YulFunctionCall","src":"3665:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3679:21:61","statements":[{"nodeType":"YulAssignment","src":"3681:17:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3690:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3693:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3686:3:61"},"nodeType":"YulFunctionCall","src":"3686:12:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3681:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"3661:3:61","statements":[]},"src":"3657:162:61"},{"body":{"nodeType":"YulBlock","src":"3853:62:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3882:3:61"},{"name":"length","nodeType":"YulIdentifier","src":"3887:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3878:3:61"},"nodeType":"YulFunctionCall","src":"3878:16:61"},{"kind":"number","nodeType":"YulLiteral","src":"3896:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3874:3:61"},"nodeType":"YulFunctionCall","src":"3874:27:61"},{"kind":"number","nodeType":"YulLiteral","src":"3903:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3867:6:61"},"nodeType":"YulFunctionCall","src":"3867:38:61"},"nodeType":"YulExpressionStatement","src":"3867:38:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3834:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"3837:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3831:2:61"},"nodeType":"YulFunctionCall","src":"3831:13:61"},"nodeType":"YulIf","src":"3828:87:61"},{"nodeType":"YulAssignment","src":"3924:116:61","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3939:3:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3952:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3960:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3948:3:61"},"nodeType":"YulFunctionCall","src":"3948:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"3965:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3944:3:61"},"nodeType":"YulFunctionCall","src":"3944:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3935:3:61"},"nodeType":"YulFunctionCall","src":"3935:98:61"},{"kind":"number","nodeType":"YulLiteral","src":"4035:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3931:3:61"},"nodeType":"YulFunctionCall","src":"3931:109:61"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3924:3:61"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3542:5:61","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3549:3:61","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3557:3:61","type":""}],"src":"3516:530:61"},{"body":{"nodeType":"YulBlock","src":"4304:405:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4321:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"4332:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4314:6:61"},"nodeType":"YulFunctionCall","src":"4314:25:61"},"nodeType":"YulExpressionStatement","src":"4314:25:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4359:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4370:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4355:3:61"},"nodeType":"YulFunctionCall","src":"4355:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4379:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4387:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4375:3:61"},"nodeType":"YulFunctionCall","src":"4375:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4348:6:61"},"nodeType":"YulFunctionCall","src":"4348:83:61"},"nodeType":"YulExpressionStatement","src":"4348:83:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4451:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4462:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4447:3:61"},"nodeType":"YulFunctionCall","src":"4447:18:61"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4473:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4467:5:61"},"nodeType":"YulFunctionCall","src":"4467:13:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4440:6:61"},"nodeType":"YulFunctionCall","src":"4440:41:61"},"nodeType":"YulExpressionStatement","src":"4440:41:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4501:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4512:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4497:3:61"},"nodeType":"YulFunctionCall","src":"4497:18:61"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4527:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4535:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4523:3:61"},"nodeType":"YulFunctionCall","src":"4523:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4517:5:61"},"nodeType":"YulFunctionCall","src":"4517:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4490:6:61"},"nodeType":"YulFunctionCall","src":"4490:50:61"},"nodeType":"YulExpressionStatement","src":"4490:50:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4560:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4571:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4556:3:61"},"nodeType":"YulFunctionCall","src":"4556:19:61"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4587:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4595:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4583:3:61"},"nodeType":"YulFunctionCall","src":"4583:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4577:5:61"},"nodeType":"YulFunctionCall","src":"4577:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4549:6:61"},"nodeType":"YulFunctionCall","src":"4549:51:61"},"nodeType":"YulExpressionStatement","src":"4549:51:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4620:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4631:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4616:3:61"},"nodeType":"YulFunctionCall","src":"4616:19:61"},{"kind":"number","nodeType":"YulLiteral","src":"4637:3:61","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4609:6:61"},"nodeType":"YulFunctionCall","src":"4609:32:61"},"nodeType":"YulExpressionStatement","src":"4609:32:61"},{"nodeType":"YulAssignment","src":"4650:53:61","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4675:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4687:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4698:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4683:3:61"},"nodeType":"YulFunctionCall","src":"4683:19:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4658:16:61"},"nodeType":"YulFunctionCall","src":"4658:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4650:4:61"}]}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4249:9:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4260:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4268:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4276:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4284:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4295:4:61","type":""}],"src":"4051:658:61"},{"body":{"nodeType":"YulBlock","src":"5015:466:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5032:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5047:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"5055:10:61","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5043:3:61"},"nodeType":"YulFunctionCall","src":"5043:23:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5025:6:61"},"nodeType":"YulFunctionCall","src":"5025:42:61"},"nodeType":"YulExpressionStatement","src":"5025:42:61"},{"nodeType":"YulVariableDeclaration","src":"5076:52:61","value":{"kind":"number","nodeType":"YulLiteral","src":"5086:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5080:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5148:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5159:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5144:3:61"},"nodeType":"YulFunctionCall","src":"5144:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5168:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"5176:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5164:3:61"},"nodeType":"YulFunctionCall","src":"5164:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5137:6:61"},"nodeType":"YulFunctionCall","src":"5137:43:61"},"nodeType":"YulExpressionStatement","src":"5137:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5211:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5196:3:61"},"nodeType":"YulFunctionCall","src":"5196:18:61"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5220:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"5228:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5216:3:61"},"nodeType":"YulFunctionCall","src":"5216:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5189:6:61"},"nodeType":"YulFunctionCall","src":"5189:43:61"},"nodeType":"YulExpressionStatement","src":"5189:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5252:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5263:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5248:3:61"},"nodeType":"YulFunctionCall","src":"5248:18:61"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5272:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"5280:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5268:3:61"},"nodeType":"YulFunctionCall","src":"5268:15:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5241:6:61"},"nodeType":"YulFunctionCall","src":"5241:43:61"},"nodeType":"YulExpressionStatement","src":"5241:43:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5304:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5315:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5300:3:61"},"nodeType":"YulFunctionCall","src":"5300:19:61"},{"name":"value4","nodeType":"YulIdentifier","src":"5321:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5293:6:61"},"nodeType":"YulFunctionCall","src":"5293:35:61"},"nodeType":"YulExpressionStatement","src":"5293:35:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5348:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5359:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5344:3:61"},"nodeType":"YulFunctionCall","src":"5344:19:61"},{"name":"value5","nodeType":"YulIdentifier","src":"5365:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:61"},"nodeType":"YulFunctionCall","src":"5337:35:61"},"nodeType":"YulExpressionStatement","src":"5337:35:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5392:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5403:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5388:3:61"},"nodeType":"YulFunctionCall","src":"5388:19:61"},{"kind":"number","nodeType":"YulLiteral","src":"5409:3:61","type":"","value":"224"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5381:6:61"},"nodeType":"YulFunctionCall","src":"5381:32:61"},"nodeType":"YulExpressionStatement","src":"5381:32:61"},{"nodeType":"YulAssignment","src":"5422:53:61","value":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"5447:6:61"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5459:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"5470:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5455:3:61"},"nodeType":"YulFunctionCall","src":"5455:19:61"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5430:16:61"},"nodeType":"YulFunctionCall","src":"5430:45:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5422:4:61"}]}]},"name":"abi_encode_tuple_t_uint32_t_address_t_address_t_address_t_rational_0_by_1_t_rational_0_by_1_t_bytes_memory_ptr__to_t_uint32_t_address_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4936:9:61","type":""},{"name":"value6","nodeType":"YulTypedName","src":"4947:6:61","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4955:6:61","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4963:6:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4971:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4979:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4987:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4995:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5006:4:61","type":""}],"src":"4714:767:61"},{"body":{"nodeType":"YulBlock","src":"5567:103:61","statements":[{"body":{"nodeType":"YulBlock","src":"5613:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5622:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5625:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5615:6:61"},"nodeType":"YulFunctionCall","src":"5615:12:61"},"nodeType":"YulExpressionStatement","src":"5615:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5588:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"5597:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5584:3:61"},"nodeType":"YulFunctionCall","src":"5584:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"5609:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5580:3:61"},"nodeType":"YulFunctionCall","src":"5580:32:61"},"nodeType":"YulIf","src":"5577:52:61"},{"nodeType":"YulAssignment","src":"5638:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5654:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5648:5:61"},"nodeType":"YulFunctionCall","src":"5648:16:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5638:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5533:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5544:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5556:6:61","type":""}],"src":"5486:184:61"}]},"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 panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory() -> 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 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_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_struct_CrossChainMessageInfo(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x60) { revert(0, 0) }\n        value := allocate_memory()\n        let value_1 := calldataload(headStart)\n        validator_revert_address(value_1)\n        mstore(value, value_1)\n        let value_2 := calldataload(add(headStart, 32))\n        if iszero(eq(value_2, and(value_2, 0xffffffff))) { revert(0, 0) }\n        mstore(add(value, 32), value_2)\n        mstore(add(value, 64), calldataload(add(headStart, 64)))\n    }\n    function abi_decode_tuple_t_bytes32t_struct$_RegistrationInfo_$5575_memory_ptrt_struct$_CrossChainMessageInfo_$5560_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := calldataload(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        let _3 := sub(dataEnd, _2)\n        if slt(_3, 160) { revert(0, 0) }\n        let value := allocate_memory()\n        if slt(_3, 0x60) { revert(0, 0) }\n        let value_1 := allocate_memory()\n        mstore(value_1, calldataload(_2))\n        mstore(add(value_1, 32), calldataload(add(_2, 32)))\n        mstore(add(value_1, 64), calldataload(add(_2, 64)))\n        mstore(value, value_1)\n        mstore(add(value, 32), abi_decode_address(add(_2, 0x60)))\n        let offset_1 := calldataload(add(_2, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        mstore(add(value, 64), abi_decode_bytes(add(_2, offset_1), dataEnd))\n        value1 := value\n        value2 := abi_decode_struct_CrossChainMessageInfo(add(headStart, 64), dataEnd)\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        if gt(i, length)\n        {\n            mstore(add(add(pos, length), 0x20), 0)\n        }\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), mload(value2))\n        mstore(add(headStart, 96), mload(add(value2, 32)))\n        mstore(add(headStart, 128), mload(add(value2, 64)))\n        mstore(add(headStart, 160), 192)\n        tail := abi_encode_bytes(value3, add(headStart, 192))\n    }\n    function abi_encode_tuple_t_uint32_t_address_t_address_t_address_t_rational_0_by_1_t_rational_0_by_1_t_bytes_memory_ptr__to_t_uint32_t_address_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffff))\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), and(value3, _1))\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), value5)\n        mstore(add(headStart, 192), 224)\n        tail := abi_encode_bytes(value6, add(headStart, 224))\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}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9468":[{"length":32,"start":64},{"length":32,"start":371}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063e787bc691461008b575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009e610099366004610361565b6100a0565b005b6000838360200151846000015185604001516040516024016100c59493929190610485565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f31662fd6000000000000000000000000000000000000000000000000000000001790528451858301519186015192517f8aac16ba00000000000000000000000000000000000000000000000000000000815293945073ffffffffffffffffffffffffffffffffffffffff1692638aac16ba926101a6917f0000000000000000000000000000000000000000000000000000000000000000906000903390829081908b906004016104df565b60206040518083038185885af11580156101c4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906101e99190610545565b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610242576102426101f0565b60405290565b73ffffffffffffffffffffffffffffffffffffffff8116811461026a57600080fd5b50565b803561027881610248565b919050565b600082601f83011261028e57600080fd5b813567ffffffffffffffff808211156102a9576102a96101f0565b604051601f8301601f19908116603f011681019082821181831017156102d1576102d16101f0565b816040528381528660208588010111156102ea57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006060828403121561031c57600080fd5b61032461021f565b9050813561033181610248565b8152602082013563ffffffff8116811461034a57600080fd5b806020830152506040820135604082015292915050565b600080600060a0848603121561037657600080fd5b83359250602084013567ffffffffffffffff8082111561039557600080fd5b9085019081870360a08112156103aa57600080fd5b6103b261021f565b60608212156103c057600080fd5b6103c861021f565b91508335825260208401356020830152604084013560408301528181526103f16060850161026d565b6020820152608084013591508282111561040a57600080fd5b6104168983860161027d565b60408201528095505050505061042f856040860161030a565b90509250925092565b6000815180845260005b8181101561045e57602081850181015186830182015201610442565b81811115610470576000602083870101525b50601f01601f19169290920160200192915050565b84815273ffffffffffffffffffffffffffffffffffffffff8416602082015282516040820152602083015160608201526040830151608082015260c060a082015260006104d560c0830184610438565b9695505050505050565b63ffffffff88168152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401528087166060840152508460808301528360a083015260e060c083015261053860e0830184610438565b9998505050505050505050565b60006020828403121561055757600080fd5b505191905056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE787BC69 EQ PUSH2 0x8B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x361 JUMP JUMPDEST PUSH2 0xA0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP4 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xC5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x31662FD600000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE DUP5 MLOAD DUP6 DUP4 ADD MLOAD SWAP2 DUP7 ADD MLOAD SWAP3 MLOAD PUSH32 0x8AAC16BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP4 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 PUSH4 0x8AAC16BA SWAP3 PUSH2 0x1A6 SWAP2 PUSH32 0x0 SWAP1 PUSH1 0x0 SWAP1 CALLER SWAP1 DUP3 SWAP1 DUP2 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C4 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 0x1E9 SWAP2 SWAP1 PUSH2 0x545 JUMP JUMPDEST POP 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 0x242 JUMPI PUSH2 0x242 PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x26A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x278 DUP2 PUSH2 0x248 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2A9 JUMPI PUSH2 0x2A9 PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2D1 JUMPI PUSH2 0x2D1 PUSH2 0x1F0 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x2EA 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 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324 PUSH2 0x21F JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x331 DUP2 PUSH2 0x248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP6 ADD SWAP1 DUP2 DUP8 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B2 PUSH2 0x21F JUMP JUMPDEST PUSH1 0x60 DUP3 SLT ISZERO PUSH2 0x3C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C8 PUSH2 0x21F JUMP JUMPDEST SWAP2 POP DUP4 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x3F1 PUSH1 0x60 DUP6 ADD PUSH2 0x26D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP5 ADD CALLDATALOAD SWAP2 POP DUP3 DUP3 GT ISZERO PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x416 DUP10 DUP4 DUP7 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE DUP1 SWAP6 POP POP POP POP POP PUSH2 0x42F DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x30A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x45E JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x442 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4D5 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x438 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP9 AND DUP2 MSTORE PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x20 DUP5 ADD MSTORE DUP1 DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE DUP1 DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE POP DUP5 PUSH1 0x80 DUP4 ADD MSTORE DUP4 PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xE0 PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x538 PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x438 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"402:1275:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;464:33;;;;;;;;190:42:61;178:55;;;160:74;;148:2;133:18;464:33:46;;;;;;;578:1097;;;;;;:::i;:::-;;:::i;:::-;;;751:29;882:6;906:13;:19;;;943:13;:21;;;982:13;:36;;;783:259;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;783:259:46;;;;;;;;;;;;;;;;;;;;;1062:23;;1101:19;;;;1136:21;;;;1053:615;;;;;783:259;;-1:-1:-1;1053:39:46;;;;;:615;;1223:8;;-1:-1:-1;;1391:10:46;;-1:-1:-1;;;;783:259:46;;1053:615;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;741:934;578:1097;;;:::o;245:184:61:-;297:77;294:1;287:88;394:4;391:1;384:15;418:4;415:1;408:15;434:248;501:2;495:9;543:4;531:17;;578:18;563:34;;599:22;;;560:62;557:88;;;625:18;;:::i;:::-;661:2;654:22;434:248;:::o;687:154::-;773:42;766:5;762:54;755:5;752:65;742:93;;831:1;828;821:12;742:93;687:154;:::o;846:134::-;914:20;;943:31;914:20;943:31;:::i;:::-;846:134;;;:::o;985:777::-;1027:5;1080:3;1073:4;1065:6;1061:17;1057:27;1047:55;;1098:1;1095;1088:12;1047:55;1134:6;1121:20;1160:18;1197:2;1193;1190:10;1187:36;;;1203:18;;:::i;:::-;1337:2;1331:9;1399:4;1391:13;;-1:-1:-1;;1387:22:61;;;1411:2;1383:31;1379:40;1367:53;;;1435:18;;;1455:22;;;1432:46;1429:72;;;1481:18;;:::i;:::-;1521:10;1517:2;1510:22;1556:2;1548:6;1541:18;1602:3;1595:4;1590:2;1582:6;1578:15;1574:26;1571:35;1568:55;;;1619:1;1616;1609:12;1568:55;1683:2;1676:4;1668:6;1664:17;1657:4;1649:6;1645:17;1632:54;1730:1;1723:4;1718:2;1710:6;1706:15;1702:26;1695:37;1750:6;1741:15;;;;;;985:777;;;;:::o;1767:534::-;1835:5;1883:4;1871:9;1866:3;1862:19;1858:30;1855:50;;;1901:1;1898;1891:12;1855:50;1923:17;;:::i;:::-;1914:26;;1977:9;1964:23;1996:33;2021:7;1996:33;:::i;:::-;2038:22;;2112:2;2097:18;;2084:32;2160:10;2147:24;;2135:37;;2125:65;;2186:1;2183;2176:12;2125:65;2222:7;2217:2;2210:5;2206:14;2199:31;;2290:2;2279:9;2275:18;2262:32;2257:2;2250:5;2246:14;2239:56;1767:534;;;;:::o;2306:1205::-;2456:6;2464;2472;2525:3;2513:9;2504:7;2500:23;2496:33;2493:53;;;2542:1;2539;2532:12;2493:53;2578:9;2565:23;2555:33;;2639:2;2628:9;2624:18;2611:32;2662:18;2703:2;2695:6;2692:14;2689:34;;;2719:1;2716;2709:12;2689:34;2742:22;;;;2783:16;;;2819:3;2811:12;;2808:32;;;2836:1;2833;2826:12;2808:32;2862:17;;:::i;:::-;2899:4;2895:2;2891:13;2888:33;;;2917:1;2914;2907:12;2888:33;2945:17;;:::i;:::-;2930:32;;3000:2;2987:16;2978:7;2971:33;3059:2;3055;3051:11;3038:25;3033:2;3024:7;3020:16;3013:51;3119:2;3115;3111:11;3098:25;3093:2;3084:7;3080:16;3073:51;3147:7;3140:5;3133:22;3187:33;3214:4;3210:2;3206:13;3187:33;:::i;:::-;3182:2;3175:5;3171:14;3164:57;3267:3;3263:2;3259:12;3246:26;3230:42;;3297:2;3287:8;3284:16;3281:36;;;3313:1;3310;3303:12;3281:36;3349:44;3385:7;3374:8;3370:2;3366:17;3349:44;:::i;:::-;3344:2;3337:5;3333:14;3326:68;3413:5;3403:15;;;;;;3437:68;3497:7;3492:2;3481:9;3477:18;3437:68;:::i;:::-;3427:78;;2306:1205;;;;;:::o;3516:530::-;3557:3;3595:5;3589:12;3622:6;3617:3;3610:19;3647:1;3657:162;3671:6;3668:1;3665:13;3657:162;;;3733:4;3789:13;;;3785:22;;3779:29;3761:11;;;3757:20;;3750:59;3686:12;3657:162;;;3837:6;3834:1;3831:13;3828:87;;;3903:1;3896:4;3887:6;3882:3;3878:16;3874:27;3867:38;3828:87;-1:-1:-1;3960:2:61;3948:15;-1:-1:-1;;3944:88:61;3935:98;;;;4035:4;3931:109;;3516:530;-1:-1:-1;;3516:530:61:o;4051:658::-;4332:6;4321:9;4314:25;4387:42;4379:6;4375:55;4370:2;4359:9;4355:18;4348:83;4473:6;4467:13;4462:2;4451:9;4447:18;4440:41;4535:2;4527:6;4523:15;4517:22;4512:2;4501:9;4497:18;4490:50;4595:2;4587:6;4583:15;4577:22;4571:3;4560:9;4556:19;4549:51;4637:3;4631;4620:9;4616:19;4609:32;4295:4;4658:45;4698:3;4687:9;4683:19;4675:6;4658:45;:::i;:::-;4650:53;4051:658;-1:-1:-1;;;;;;4051:658:61:o;4714:767::-;5055:10;5047:6;5043:23;5032:9;5025:42;5006:4;5086:42;5176:2;5168:6;5164:15;5159:2;5148:9;5144:18;5137:43;5228:2;5220:6;5216:15;5211:2;5200:9;5196:18;5189:43;5280:2;5272:6;5268:15;5263:2;5252:9;5248:18;5241:43;;5321:6;5315:3;5304:9;5300:19;5293:35;5365:6;5359:3;5348:9;5344:19;5337:35;5409:3;5403;5392:9;5388:19;5381:32;5430:45;5470:3;5459:9;5455:19;5447:6;5430:45;:::i;:::-;5422:53;4714:767;-1:-1:-1;;;;;;;;;4714:767:61:o;5486:184::-;5556:6;5609:2;5597:9;5588:7;5584:23;5580:32;5577:52;;;5625:1;5622;5615:12;5577:52;-1:-1:-1;5648:16:61;;5486:184;-1:-1:-1;5486:184:61:o"},"methodIdentifiers":{"initiateRegistration(bytes32,((uint256,uint256,uint256),address,bytes),(address,uint32,uint256))":"e787bc69","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orgID\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"managerInitializerData\",\"type\":\"bytes\"}],\"internalType\":\"struct RegistrationInfo\",\"name\":\"_registration\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"originEndpoint\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"destDomainID\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"relayerFee\",\"type\":\"uint256\"}],\"internalType\":\"struct CrossChainMessageInfo\",\"name\":\"_message\",\"type\":\"tuple\"}],\"name\":\"initiateRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ConnextCrossChainAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/cross-chain/ConnextCrossChainAdapter.sol\":\"ConnextCrossChainAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@connext/interfaces/core/IConnext.sol\":{\"keccak256\":\"0x1c2f287fe81216f7060acce25747374631b94ff9a87573e1c5d36df1a3a2fdf8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2ceb15c29182ffec108b47c655f322406251c154ef13dd4e2c1624f131a63807\",\"dweb:/ipfs/QmbWGwyTUL8KrLqKPFWhoN9fDJ3ygYdWqFMf6qEi6b2Ywn\"]},\"@connext/interfaces/libraries/LibConnextStorage.sol\":{\"keccak256\":\"0xb8581253c5ebe58445c37d344fafe6126d3f7a15784337b3571637cd0068de57\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7c0de0736b0f823ec8ee871de4e83550407365f3115f3603f7dc888f23f026c\",\"dweb:/ipfs/QmTixst8JKz17UDNcmpSBtrHV66S7VrM9oTammQBkz2nF5\"]},\"@connext/interfaces/libraries/TokenId.sol\":{\"keccak256\":\"0xfa4e01760604863ea105e18380c243cd2250a7553d2b852f67ecb747f9916b6d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8bf151c51f3cc5927a863d8d9c512bc5edd3eecc86da7d70b3dcb636d303a9c1\",\"dweb:/ipfs/QmdH38rX4zg6Nsm9HRP6x5h8BRE3QC5hALNRxJsP14dPGx\"]},\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/ChugSplashManagerProxy.sol\":{\"keccak256\":\"0x08f7a01c1e8ed1a3ace823da2c800cac83ee0f1b686fa7d2aa9448fe9108b738\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c02af117c8c34ba3844d1a860cf5252601c649e085d33b8f1d148afa4a7e3d53\",\"dweb:/ipfs/QmSdAQDa9XkHCZ5GiG9mefe8Dyk5p54xQAfWNfy72e7dQY\"]},\"contracts/ChugSplashRegistry.sol\":{\"keccak256\":\"0xf21f036ad9a065f394db4f71f3b81a5c3bc53c82548db977a3cb4cb13045eb23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://157bbd56debc2fb38e71a25d5f07d95f177196dccf9cd9fc3c127b83e2a7edca\",\"dweb:/ipfs/QmXWqnsD1pWF1UGJ2nf553XED6TtszzoTcxeRmcj9kZSvL\"]},\"contracts/ChugSplashRegistryEvents.sol\":{\"keccak256\":\"0x118e5d3674d77632a6ef220f4e3b382874f43667cda8f4221691c8b0145361d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db406839a33143ecd104e076e325f46d571a1eb6faa7c5925f6c578b9ab3091f\",\"dweb:/ipfs/QmRLDpdGgB8erEniC17xWTRkUMAaueot1QT9mty95ugmxo\"]},\"contracts/Semver.sol\":{\"keccak256\":\"0x52d8f765cd6217080ac1f72ec9e3c890266721dac6140a57191b06929d24998f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b43be60ae13919f8e4a33176b0688d862e6beb96e82061419247a76f49f3905\",\"dweb:/ipfs/QmTd8jUQs9miD6r5vKjcC1xsoMhoKECSSUiQugKn5Qsjgx\"]},\"contracts/adapters/cross-chain/ConnextCrossChainAdapter.sol\":{\"keccak256\":\"0xcc265b2bd76bd0ba5c00251893a4710e740ee906ac32710fc03dedba16d94ecb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad9cbe4275ebd939cd6bfad0d3b141cb2129539b3a70a5e9dd07792ad0a61ea6\",\"dweb:/ipfs/QmbTNM9hfv8FRd7WLTAogiCEJwEC5QwaY6YbeabFqaUsBD\"]},\"contracts/interfaces/IChugSplashManager.sol\":{\"keccak256\":\"0x37998e41256bc1141a1942cdd3a78937624b0cf76191fdc5c31dd7d38a6683e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7071f51a896ef06e787ea998ba876d461ef6828cfa3a5c9e3b6a456efd36f8\",\"dweb:/ipfs/QmXP3vojTfjiNqvXNxprz166wJXnqMvTL3bmdNdZv9rgfG\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]},\"contracts/interfaces/ICrossChainAdapter.sol\":{\"keccak256\":\"0xed516a15c78b8fd74865b7e8c126a565b6fcebe75432797bd0d18b1f12a9c686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3f2d9123da2e50fa15e6d43be2c951e82931dcb220ec2ec3e5c4b770bb9613\",\"dweb:/ipfs/QmYuqjXYAWyaeQc88bmgKqTyQMBtJ45pcXgHuqoDKBjzfX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/adapters/cross-chain/LocalAdapter.sol":{"LocalAdapter":{"abi":[{"inputs":[{"internalType":"contract ChugSplashRegistry","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"_orgID","type":"bytes32"},{"components":[{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"version","type":"tuple"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"managerInitializerData","type":"bytes"}],"internalType":"struct RegistrationInfo","name":"_registration","type":"tuple"},{"components":[{"internalType":"address payable","name":"originEndpoint","type":"address"},{"internalType":"uint32","name":"destDomainID","type":"uint32"},{"internalType":"uint256","name":"relayerFee","type":"uint256"}],"internalType":"struct CrossChainMessageInfo","name":"","type":"tuple"}],"name":"initiateRegistration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ChugSplashRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9557":{"entryPoint":null,"id":9557,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_ChugSplashRegistry_$8652_fromMemory":{"entryPoint":64,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:333:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"122:209:61","statements":[{"body":{"nodeType":"YulBlock","src":"168:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"177:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"180:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"170:6:61"},"nodeType":"YulFunctionCall","src":"170:12:61"},"nodeType":"YulExpressionStatement","src":"170:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"143:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"152:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"139:3:61"},"nodeType":"YulFunctionCall","src":"139:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"164:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"135:3:61"},"nodeType":"YulFunctionCall","src":"135:32:61"},"nodeType":"YulIf","src":"132:52:61"},{"nodeType":"YulVariableDeclaration","src":"193:29:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"212:9:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"206:5:61"},"nodeType":"YulFunctionCall","src":"206:16:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"197:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"285:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"294:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"297:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"287:6:61"},"nodeType":"YulFunctionCall","src":"287:12:61"},"nodeType":"YulExpressionStatement","src":"287:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"244:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"255:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"270:3:61","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"275:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"266:3:61"},"nodeType":"YulFunctionCall","src":"266:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"279:1:61","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"262:3:61"},"nodeType":"YulFunctionCall","src":"262:19:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"251:3:61"},"nodeType":"YulFunctionCall","src":"251:31:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"241:2:61"},"nodeType":"YulFunctionCall","src":"241:42:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"234:6:61"},"nodeType":"YulFunctionCall","src":"234:50:61"},"nodeType":"YulIf","src":"231:70:61"},{"nodeType":"YulAssignment","src":"310:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"320:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"310:6:61"}]}]},"name":"abi_decode_tuple_t_contract$_ChugSplashRegistry_$8652_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"88:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"99:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"111:6:61","type":""}],"src":"14:317:61"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_ChugSplashRegistry_$8652_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":61,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b5060405161050b38038061050b83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161047b610090600039600081816040015260e9015261047b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063e787bc691461008b575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009e6100993660046102e4565b6100a0565b005b6020820151825160408085015190517f31662fd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016936331662fd69361011e9389936004016103bb565b600060405180830381600087803b15801561013857600080fd5b505af115801561014c573d6000803e3d6000fd5b50505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156101a7576101a7610155565b60405290565b73ffffffffffffffffffffffffffffffffffffffff811681146101cf57600080fd5b50565b80356101dd816101ad565b919050565b600082601f8301126101f357600080fd5b813567ffffffffffffffff8082111561020e5761020e610155565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561025457610254610155565b8160405283815286602085880101111561026d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006060828403121561029f57600080fd5b6102a7610184565b905081356102b4816101ad565b8152602082013563ffffffff811681146102cd57600080fd5b806020830152506040820135604082015292915050565b600080600060a084860312156102f957600080fd5b83359250602084013567ffffffffffffffff8082111561031857600080fd5b9085019081870360a081121561032d57600080fd5b610335610184565b606082121561034357600080fd5b61034b610184565b9150833582526020840135602083015260408401356040830152818152610374606085016101d2565b6020820152608084013591508282111561038d57600080fd5b610399898386016101e2565b6040820152809550505050506103b2856040860161028d565b90509250925092565b8481526000602073ffffffffffffffffffffffffffffffffffffffff861681840152845160408401528085015160608401526040850151608084015260c060a084015283518060c085015260005b818110156104255785810183015185820160e001528201610409565b8181111561043757600060e083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160e001969550505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x50B CODESIZE SUB DUP1 PUSH2 0x50B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x40 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x70 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x47B PUSH2 0x90 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x40 ADD MSTORE PUSH1 0xE9 ADD MSTORE PUSH2 0x47B 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE787BC69 EQ PUSH2 0x8B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E4 JUMP JUMPDEST PUSH2 0xA0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x31662FD600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP4 PUSH4 0x31662FD6 SWAP4 PUSH2 0x11E SWAP4 DUP10 SWAP4 PUSH1 0x4 ADD PUSH2 0x3BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP 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 0x1A7 JUMPI PUSH2 0x1A7 PUSH2 0x155 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DD DUP2 PUSH2 0x1AD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x20E JUMPI PUSH2 0x20E PUSH2 0x155 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 0x254 JUMPI PUSH2 0x254 PUSH2 0x155 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x26D 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 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x2B4 DUP2 PUSH2 0x1AD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP6 ADD SWAP1 DUP2 DUP8 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 PUSH2 0x184 JUMP JUMPDEST PUSH1 0x60 DUP3 SLT ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x34B PUSH2 0x184 JUMP JUMPDEST SWAP2 POP DUP4 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x374 PUSH1 0x60 DUP6 ADD PUSH2 0x1D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP5 ADD CALLDATALOAD SWAP2 POP DUP3 DUP3 GT ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x399 DUP10 DUP4 DUP7 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE DUP1 SWAP6 POP POP POP POP POP PUSH2 0x3B2 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x28D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 DUP5 ADD MSTORE DUP5 MLOAD PUSH1 0x40 DUP5 ADD MSTORE DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x425 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0xE0 ADD MSTORE DUP3 ADD PUSH2 0x409 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 PUSH1 0xE0 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0xE0 ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"390:536:47:-:0;;;491:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;543:20:47;;;390:536;;14:317:61;111:6;164:2;152:9;143:7;139:23;135:32;132:52;;;180:1;177;170:12;132:52;206:16;;-1:-1:-1;;;;;251:31:61;;241:42;;231:70;;297:1;294;287:12;231:70;320:5;14:317;-1:-1:-1;;;14:317:61:o;:::-;390:536:47;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@initiateRegistration_9581":{"entryPoint":160,"id":9581,"parameterSlots":3,"returnSlots":0},"@registry_9546":{"entryPoint":null,"id":9546,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":466,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_CrossChainMessageInfo":{"entryPoint":653,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_struct$_RegistrationInfo_$5575_memory_ptrt_struct$_CrossChainMessageInfo_$5560_memory_ptr":{"entryPoint":740,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":955,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":388,"id":null,"parameterSlots":0,"returnSlots":1},"panic_error_0x41":{"entryPoint":341,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":429,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4643:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"142:125:61","statements":[{"nodeType":"YulAssignment","src":"152:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"164:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"175:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"160:3:61"},"nodeType":"YulFunctionCall","src":"160:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"152:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"194:9:61"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"209:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"217:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"205:3:61"},"nodeType":"YulFunctionCall","src":"205:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"187:6:61"},"nodeType":"YulFunctionCall","src":"187:74:61"},"nodeType":"YulExpressionStatement","src":"187:74:61"}]},"name":"abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"111:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"122:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"133:4:61","type":""}],"src":"14:253:61"},{"body":{"nodeType":"YulBlock","src":"304:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"321:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"324:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"314:6:61"},"nodeType":"YulFunctionCall","src":"314:88:61"},"nodeType":"YulExpressionStatement","src":"314:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"418:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"421:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"411:6:61"},"nodeType":"YulFunctionCall","src":"411:15:61"},"nodeType":"YulExpressionStatement","src":"411:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"442:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"445:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"435:6:61"},"nodeType":"YulFunctionCall","src":"435:15:61"},"nodeType":"YulExpressionStatement","src":"435:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"272:184:61"},{"body":{"nodeType":"YulBlock","src":"502:207:61","statements":[{"nodeType":"YulAssignment","src":"512:19:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"528:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"522:5:61"},"nodeType":"YulFunctionCall","src":"522:9:61"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"512:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"540:35:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"562:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"570:4:61","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"558:3:61"},"nodeType":"YulFunctionCall","src":"558:17:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"544:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"650:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"652:16:61"},"nodeType":"YulFunctionCall","src":"652:18:61"},"nodeType":"YulExpressionStatement","src":"652:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"593:10:61"},{"kind":"number","nodeType":"YulLiteral","src":"605:18:61","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"590:2:61"},"nodeType":"YulFunctionCall","src":"590:34:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"629:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"641:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"626:2:61"},"nodeType":"YulFunctionCall","src":"626:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"587:2:61"},"nodeType":"YulFunctionCall","src":"587:62:61"},"nodeType":"YulIf","src":"584:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"688:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"692:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"681:6:61"},"nodeType":"YulFunctionCall","src":"681:22:61"},"nodeType":"YulExpressionStatement","src":"681:22:61"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"491:6:61","type":""}],"src":"461:248:61"},{"body":{"nodeType":"YulBlock","src":"759:109:61","statements":[{"body":{"nodeType":"YulBlock","src":"846:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"855:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"858:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"848:6:61"},"nodeType":"YulFunctionCall","src":"848:12:61"},"nodeType":"YulExpressionStatement","src":"848:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"782:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"793:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"800:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"789:3:61"},"nodeType":"YulFunctionCall","src":"789:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"779:2:61"},"nodeType":"YulFunctionCall","src":"779:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"772:6:61"},"nodeType":"YulFunctionCall","src":"772:73:61"},"nodeType":"YulIf","src":"769:93:61"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"748:5:61","type":""}],"src":"714:154:61"},{"body":{"nodeType":"YulBlock","src":"922:85:61","statements":[{"nodeType":"YulAssignment","src":"932:29:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"954:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"941:12:61"},"nodeType":"YulFunctionCall","src":"941:20:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"932:5:61"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"995:5:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"970:24:61"},"nodeType":"YulFunctionCall","src":"970:31:61"},"nodeType":"YulExpressionStatement","src":"970:31:61"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"901:6:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"912:5:61","type":""}],"src":"873:134:61"},{"body":{"nodeType":"YulBlock","src":"1064:725:61","statements":[{"body":{"nodeType":"YulBlock","src":"1113:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1122:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1125:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1115:6:61"},"nodeType":"YulFunctionCall","src":"1115:12:61"},"nodeType":"YulExpressionStatement","src":"1115:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1092:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1100:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1088:3:61"},"nodeType":"YulFunctionCall","src":"1088:17:61"},{"name":"end","nodeType":"YulIdentifier","src":"1107:3:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1084:3:61"},"nodeType":"YulFunctionCall","src":"1084:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1077:6:61"},"nodeType":"YulFunctionCall","src":"1077:35:61"},"nodeType":"YulIf","src":"1074:55:61"},{"nodeType":"YulVariableDeclaration","src":"1138:30:61","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1161:6:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1148:12:61"},"nodeType":"YulFunctionCall","src":"1148:20:61"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1142:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1177:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1187:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1181:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1228:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1230:16:61"},"nodeType":"YulFunctionCall","src":"1230:18:61"},"nodeType":"YulExpressionStatement","src":"1230:18:61"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1220:2:61"},{"name":"_2","nodeType":"YulIdentifier","src":"1224:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1217:2:61"},"nodeType":"YulFunctionCall","src":"1217:10:61"},"nodeType":"YulIf","src":"1214:36:61"},{"nodeType":"YulVariableDeclaration","src":"1259:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"1269:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1263:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1344:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1364:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1358:5:61"},"nodeType":"YulFunctionCall","src":"1358:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1348:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1376:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1398:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1422:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1426:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1418:3:61"},"nodeType":"YulFunctionCall","src":"1418:13:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1433:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1414:3:61"},"nodeType":"YulFunctionCall","src":"1414:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"1438:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1410:3:61"},"nodeType":"YulFunctionCall","src":"1410:31:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1443:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1406:3:61"},"nodeType":"YulFunctionCall","src":"1406:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1394:3:61"},"nodeType":"YulFunctionCall","src":"1394:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1380:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1506:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1508:16:61"},"nodeType":"YulFunctionCall","src":"1508:18:61"},"nodeType":"YulExpressionStatement","src":"1508:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1465:10:61"},{"name":"_2","nodeType":"YulIdentifier","src":"1477:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1462:2:61"},"nodeType":"YulFunctionCall","src":"1462:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1485:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1497:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1482:2:61"},"nodeType":"YulFunctionCall","src":"1482:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1459:2:61"},"nodeType":"YulFunctionCall","src":"1459:46:61"},"nodeType":"YulIf","src":"1456:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1544:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1548:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1537:6:61"},"nodeType":"YulFunctionCall","src":"1537:22:61"},"nodeType":"YulExpressionStatement","src":"1537:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1575:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1583:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1568:6:61"},"nodeType":"YulFunctionCall","src":"1568:18:61"},"nodeType":"YulExpressionStatement","src":"1568:18:61"},{"body":{"nodeType":"YulBlock","src":"1634:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1643:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1646:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1636:6:61"},"nodeType":"YulFunctionCall","src":"1636:12:61"},"nodeType":"YulExpressionStatement","src":"1636:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1609:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1617:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1605:3:61"},"nodeType":"YulFunctionCall","src":"1605:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1622:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1601:3:61"},"nodeType":"YulFunctionCall","src":"1601:26:61"},{"name":"end","nodeType":"YulIdentifier","src":"1629:3:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1598:2:61"},"nodeType":"YulFunctionCall","src":"1598:35:61"},"nodeType":"YulIf","src":"1595:55:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1676:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1684:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1672:3:61"},"nodeType":"YulFunctionCall","src":"1672:17:61"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1695:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1703:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1691:3:61"},"nodeType":"YulFunctionCall","src":"1691:17:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1710:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1659:12:61"},"nodeType":"YulFunctionCall","src":"1659:54:61"},"nodeType":"YulExpressionStatement","src":"1659:54:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1737:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1745:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1733:3:61"},"nodeType":"YulFunctionCall","src":"1733:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1750:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1729:3:61"},"nodeType":"YulFunctionCall","src":"1729:26:61"},{"kind":"number","nodeType":"YulLiteral","src":"1757:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1722:6:61"},"nodeType":"YulFunctionCall","src":"1722:37:61"},"nodeType":"YulExpressionStatement","src":"1722:37:61"},{"nodeType":"YulAssignment","src":"1768:15:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1777:6:61"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1768:5:61"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1038:6:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"1046:3:61","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1054:5:61","type":""}],"src":"1012:777:61"},{"body":{"nodeType":"YulBlock","src":"1872:456:61","statements":[{"body":{"nodeType":"YulBlock","src":"1916:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1925:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1928:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1918:6:61"},"nodeType":"YulFunctionCall","src":"1918:12:61"},"nodeType":"YulExpressionStatement","src":"1918:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"1893:3:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1898:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1889:3:61"},"nodeType":"YulFunctionCall","src":"1889:19:61"},{"kind":"number","nodeType":"YulLiteral","src":"1910:4:61","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1885:3:61"},"nodeType":"YulFunctionCall","src":"1885:30:61"},"nodeType":"YulIf","src":"1882:50:61"},{"nodeType":"YulAssignment","src":"1941:26:61","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1950:15:61"},"nodeType":"YulFunctionCall","src":"1950:17:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1941:5:61"}]},{"nodeType":"YulVariableDeclaration","src":"1976:38:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2004:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1991:12:61"},"nodeType":"YulFunctionCall","src":"1991:23:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1980:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2048:7:61"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2023:24:61"},"nodeType":"YulFunctionCall","src":"2023:33:61"},"nodeType":"YulExpressionStatement","src":"2023:33:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2072:5:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"2079:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2065:6:61"},"nodeType":"YulFunctionCall","src":"2065:22:61"},"nodeType":"YulExpressionStatement","src":"2065:22:61"},{"nodeType":"YulVariableDeclaration","src":"2096:47:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2128:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2139:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2124:3:61"},"nodeType":"YulFunctionCall","src":"2124:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2111:12:61"},"nodeType":"YulFunctionCall","src":"2111:32:61"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"2100:7:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2201:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2210:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2213:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2203:6:61"},"nodeType":"YulFunctionCall","src":"2203:12:61"},"nodeType":"YulExpressionStatement","src":"2203:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"2165:7:61"},{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"2178:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"2187:10:61","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2174:3:61"},"nodeType":"YulFunctionCall","src":"2174:24:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2162:2:61"},"nodeType":"YulFunctionCall","src":"2162:37:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2155:6:61"},"nodeType":"YulFunctionCall","src":"2155:45:61"},"nodeType":"YulIf","src":"2152:65:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2237:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"2244:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2233:3:61"},"nodeType":"YulFunctionCall","src":"2233:14:61"},{"name":"value_2","nodeType":"YulIdentifier","src":"2249:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2226:6:61"},"nodeType":"YulFunctionCall","src":"2226:31:61"},"nodeType":"YulExpressionStatement","src":"2226:31:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2277:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2273:3:61"},"nodeType":"YulFunctionCall","src":"2273:14:61"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2306:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2317:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2302:3:61"},"nodeType":"YulFunctionCall","src":"2302:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2289:12:61"},"nodeType":"YulFunctionCall","src":"2289:32:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2266:6:61"},"nodeType":"YulFunctionCall","src":"2266:56:61"},"nodeType":"YulExpressionStatement","src":"2266:56:61"}]},"name":"abi_decode_struct_CrossChainMessageInfo","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1843:9:61","type":""},{"name":"end","nodeType":"YulTypedName","src":"1854:3:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1862:5:61","type":""}],"src":"1794:534:61"},{"body":{"nodeType":"YulBlock","src":"2510:1028:61","statements":[{"body":{"nodeType":"YulBlock","src":"2557:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2566:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2569:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2559:6:61"},"nodeType":"YulFunctionCall","src":"2559:12:61"},"nodeType":"YulExpressionStatement","src":"2559:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2531:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"2540:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2527:3:61"},"nodeType":"YulFunctionCall","src":"2527:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"2552:3:61","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2523:3:61"},"nodeType":"YulFunctionCall","src":"2523:33:61"},"nodeType":"YulIf","src":"2520:53:61"},{"nodeType":"YulAssignment","src":"2582:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2605:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2592:12:61"},"nodeType":"YulFunctionCall","src":"2592:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2582:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"2624:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2655:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2666:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2651:3:61"},"nodeType":"YulFunctionCall","src":"2651:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2638:12:61"},"nodeType":"YulFunctionCall","src":"2638:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2628:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2679:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"2689:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2683:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2734:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2743:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2746:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2736:6:61"},"nodeType":"YulFunctionCall","src":"2736:12:61"},"nodeType":"YulExpressionStatement","src":"2736:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2722:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"2730:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2719:2:61"},"nodeType":"YulFunctionCall","src":"2719:14:61"},"nodeType":"YulIf","src":"2716:34:61"},{"nodeType":"YulVariableDeclaration","src":"2759:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2773:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"2784:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2769:3:61"},"nodeType":"YulFunctionCall","src":"2769:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2763:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2800:26:61","value":{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2814:7:61"},{"name":"_2","nodeType":"YulIdentifier","src":"2823:2:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2810:3:61"},"nodeType":"YulFunctionCall","src":"2810:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2804:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2851:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2860:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2863:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2853:6:61"},"nodeType":"YulFunctionCall","src":"2853:12:61"},"nodeType":"YulExpressionStatement","src":"2853:12:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2842:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2846:3:61","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2838:3:61"},"nodeType":"YulFunctionCall","src":"2838:12:61"},"nodeType":"YulIf","src":"2835:32:61"},{"nodeType":"YulVariableDeclaration","src":"2876:30:61","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2889:15:61"},"nodeType":"YulFunctionCall","src":"2889:17:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2880:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"2932:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2941:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2944:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2934:6:61"},"nodeType":"YulFunctionCall","src":"2934:12:61"},"nodeType":"YulExpressionStatement","src":"2934:12:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2922:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"2926:4:61","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2918:3:61"},"nodeType":"YulFunctionCall","src":"2918:13:61"},"nodeType":"YulIf","src":"2915:33:61"},{"nodeType":"YulVariableDeclaration","src":"2957:32:61","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2972:15:61"},"nodeType":"YulFunctionCall","src":"2972:17:61"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2961:7:61","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3005:7:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3027:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3014:12:61"},"nodeType":"YulFunctionCall","src":"3014:16:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2998:6:61"},"nodeType":"YulFunctionCall","src":"2998:33:61"},"nodeType":"YulExpressionStatement","src":"2998:33:61"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3051:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"3060:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3047:3:61"},"nodeType":"YulFunctionCall","src":"3047:16:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3082:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3086:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3078:3:61"},"nodeType":"YulFunctionCall","src":"3078:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3065:12:61"},"nodeType":"YulFunctionCall","src":"3065:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3040:6:61"},"nodeType":"YulFunctionCall","src":"3040:51:61"},"nodeType":"YulExpressionStatement","src":"3040:51:61"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3111:7:61"},{"kind":"number","nodeType":"YulLiteral","src":"3120:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3107:3:61"},"nodeType":"YulFunctionCall","src":"3107:16:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3142:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3146:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3138:3:61"},"nodeType":"YulFunctionCall","src":"3138:11:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3125:12:61"},"nodeType":"YulFunctionCall","src":"3125:25:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3100:6:61"},"nodeType":"YulFunctionCall","src":"3100:51:61"},"nodeType":"YulExpressionStatement","src":"3100:51:61"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3167:5:61"},{"name":"value_1","nodeType":"YulIdentifier","src":"3174:7:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3160:6:61"},"nodeType":"YulFunctionCall","src":"3160:22:61"},"nodeType":"YulExpressionStatement","src":"3160:22:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3202:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3209:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3198:3:61"},"nodeType":"YulFunctionCall","src":"3198:14:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3237:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3241:4:61","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3233:3:61"},"nodeType":"YulFunctionCall","src":"3233:13:61"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3214:18:61"},"nodeType":"YulFunctionCall","src":"3214:33:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3191:6:61"},"nodeType":"YulFunctionCall","src":"3191:57:61"},"nodeType":"YulExpressionStatement","src":"3191:57:61"},{"nodeType":"YulVariableDeclaration","src":"3257:42:61","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3290:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"3294:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3286:3:61"},"nodeType":"YulFunctionCall","src":"3286:12:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3273:12:61"},"nodeType":"YulFunctionCall","src":"3273:26:61"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3261:8:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3328:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3337:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3340:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3330:6:61"},"nodeType":"YulFunctionCall","src":"3330:12:61"},"nodeType":"YulExpressionStatement","src":"3330:12:61"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3314:8:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3324:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3311:2:61"},"nodeType":"YulFunctionCall","src":"3311:16:61"},"nodeType":"YulIf","src":"3308:36:61"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3364:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3371:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3360:3:61"},"nodeType":"YulFunctionCall","src":"3360:14:61"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3397:2:61"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3401:8:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3393:3:61"},"nodeType":"YulFunctionCall","src":"3393:17:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3412:7:61"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3376:16:61"},"nodeType":"YulFunctionCall","src":"3376:44:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3353:6:61"},"nodeType":"YulFunctionCall","src":"3353:68:61"},"nodeType":"YulExpressionStatement","src":"3353:68:61"},{"nodeType":"YulAssignment","src":"3430:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"3440:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3430:6:61"}]},{"nodeType":"YulAssignment","src":"3454:78:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3508:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3519:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3504:3:61"},"nodeType":"YulFunctionCall","src":"3504:18:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3524:7:61"}],"functionName":{"name":"abi_decode_struct_CrossChainMessageInfo","nodeType":"YulIdentifier","src":"3464:39:61"},"nodeType":"YulFunctionCall","src":"3464:68:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3454:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_struct$_RegistrationInfo_$5575_memory_ptrt_struct$_CrossChainMessageInfo_$5560_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2460:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2471:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2483:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2491:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2499:6:61","type":""}],"src":"2333:1205:61"},{"body":{"nodeType":"YulBlock","src":"3796:845:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3813:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"3824:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3806:6:61"},"nodeType":"YulFunctionCall","src":"3806:25:61"},"nodeType":"YulExpressionStatement","src":"3806:25:61"},{"nodeType":"YulVariableDeclaration","src":"3840:12:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3850:2:61","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3844:2:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3872:9:61"},{"name":"_1","nodeType":"YulIdentifier","src":"3883:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3868:3:61"},"nodeType":"YulFunctionCall","src":"3868:18:61"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3892:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3900:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3888:3:61"},"nodeType":"YulFunctionCall","src":"3888:55:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3861:6:61"},"nodeType":"YulFunctionCall","src":"3861:83:61"},"nodeType":"YulExpressionStatement","src":"3861:83:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3964:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3975:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3960:3:61"},"nodeType":"YulFunctionCall","src":"3960:18:61"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3986:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3980:5:61"},"nodeType":"YulFunctionCall","src":"3980:13:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3953:6:61"},"nodeType":"YulFunctionCall","src":"3953:41:61"},"nodeType":"YulExpressionStatement","src":"3953:41:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4014:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4025:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4010:3:61"},"nodeType":"YulFunctionCall","src":"4010:18:61"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4040:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4048:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4036:3:61"},"nodeType":"YulFunctionCall","src":"4036:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4030:5:61"},"nodeType":"YulFunctionCall","src":"4030:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4003:6:61"},"nodeType":"YulFunctionCall","src":"4003:50:61"},"nodeType":"YulExpressionStatement","src":"4003:50:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4073:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4084:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4069:3:61"},"nodeType":"YulFunctionCall","src":"4069:19:61"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4100:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4108:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4096:3:61"},"nodeType":"YulFunctionCall","src":"4096:15:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4090:5:61"},"nodeType":"YulFunctionCall","src":"4090:22:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4062:6:61"},"nodeType":"YulFunctionCall","src":"4062:51:61"},"nodeType":"YulExpressionStatement","src":"4062:51:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4133:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4144:3:61","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4129:3:61"},"nodeType":"YulFunctionCall","src":"4129:19:61"},{"kind":"number","nodeType":"YulLiteral","src":"4150:3:61","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4122:6:61"},"nodeType":"YulFunctionCall","src":"4122:32:61"},"nodeType":"YulExpressionStatement","src":"4122:32:61"},{"nodeType":"YulVariableDeclaration","src":"4163:27:61","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4183:6:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4177:5:61"},"nodeType":"YulFunctionCall","src":"4177:13:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4167:6:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4210:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"4221:3:61","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4206:3:61"},"nodeType":"YulFunctionCall","src":"4206:19:61"},{"name":"length","nodeType":"YulIdentifier","src":"4227:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4199:6:61"},"nodeType":"YulFunctionCall","src":"4199:35:61"},"nodeType":"YulExpressionStatement","src":"4199:35:61"},{"nodeType":"YulVariableDeclaration","src":"4243:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4252:1:61","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4247:1:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4312:91:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4341:9:61"},{"name":"i","nodeType":"YulIdentifier","src":"4352:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4337:3:61"},"nodeType":"YulFunctionCall","src":"4337:17:61"},{"kind":"number","nodeType":"YulLiteral","src":"4356:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4333:3:61"},"nodeType":"YulFunctionCall","src":"4333:27:61"},{"arguments":[{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4376:6:61"},{"name":"i","nodeType":"YulIdentifier","src":"4384:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4372:3:61"},"nodeType":"YulFunctionCall","src":"4372:14:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4388:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4368:3:61"},"nodeType":"YulFunctionCall","src":"4368:23:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4362:5:61"},"nodeType":"YulFunctionCall","src":"4362:30:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4326:6:61"},"nodeType":"YulFunctionCall","src":"4326:67:61"},"nodeType":"YulExpressionStatement","src":"4326:67:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4273:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"4276:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4270:2:61"},"nodeType":"YulFunctionCall","src":"4270:13:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4284:19:61","statements":[{"nodeType":"YulAssignment","src":"4286:15:61","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4295:1:61"},{"name":"_1","nodeType":"YulIdentifier","src":"4298:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4291:3:61"},"nodeType":"YulFunctionCall","src":"4291:10:61"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4286:1:61"}]}]},"pre":{"nodeType":"YulBlock","src":"4266:3:61","statements":[]},"src":"4262:141:61"},{"body":{"nodeType":"YulBlock","src":"4437:67:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4466:9:61"},{"name":"length","nodeType":"YulIdentifier","src":"4477:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4462:3:61"},"nodeType":"YulFunctionCall","src":"4462:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"4486:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4458:3:61"},"nodeType":"YulFunctionCall","src":"4458:32:61"},{"kind":"number","nodeType":"YulLiteral","src":"4492:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4451:6:61"},"nodeType":"YulFunctionCall","src":"4451:43:61"},"nodeType":"YulExpressionStatement","src":"4451:43:61"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4418:1:61"},{"name":"length","nodeType":"YulIdentifier","src":"4421:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4415:2:61"},"nodeType":"YulFunctionCall","src":"4415:13:61"},"nodeType":"YulIf","src":"4412:92:61"},{"nodeType":"YulAssignment","src":"4513:122:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4529:9:61"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4548:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"4556:2:61","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4544:3:61"},"nodeType":"YulFunctionCall","src":"4544:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"4561:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4540:3:61"},"nodeType":"YulFunctionCall","src":"4540:88:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4525:3:61"},"nodeType":"YulFunctionCall","src":"4525:104:61"},{"kind":"number","nodeType":"YulLiteral","src":"4631:3:61","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4521:3:61"},"nodeType":"YulFunctionCall","src":"4521:114:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4513:4:61"}]}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3741:9:61","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3752:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3760:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3768:6:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3776:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3787:4:61","type":""}],"src":"3543:1098:61"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_contract$_ChugSplashRegistry_$8652__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_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory() -> 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 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_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_struct_CrossChainMessageInfo(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x60) { revert(0, 0) }\n        value := allocate_memory()\n        let value_1 := calldataload(headStart)\n        validator_revert_address(value_1)\n        mstore(value, value_1)\n        let value_2 := calldataload(add(headStart, 32))\n        if iszero(eq(value_2, and(value_2, 0xffffffff))) { revert(0, 0) }\n        mstore(add(value, 32), value_2)\n        mstore(add(value, 64), calldataload(add(headStart, 64)))\n    }\n    function abi_decode_tuple_t_bytes32t_struct$_RegistrationInfo_$5575_memory_ptrt_struct$_CrossChainMessageInfo_$5560_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := calldataload(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        let _3 := sub(dataEnd, _2)\n        if slt(_3, 160) { revert(0, 0) }\n        let value := allocate_memory()\n        if slt(_3, 0x60) { revert(0, 0) }\n        let value_1 := allocate_memory()\n        mstore(value_1, calldataload(_2))\n        mstore(add(value_1, 32), calldataload(add(_2, 32)))\n        mstore(add(value_1, 64), calldataload(add(_2, 64)))\n        mstore(value, value_1)\n        mstore(add(value, 32), abi_decode_address(add(_2, 0x60)))\n        let offset_1 := calldataload(add(_2, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        mstore(add(value, 64), abi_decode_bytes(add(_2, offset_1), dataEnd))\n        value1 := value\n        value2 := abi_decode_struct_CrossChainMessageInfo(add(headStart, 64), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__to_t_bytes32_t_address_t_struct$_Version_$5567_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        let _1 := 32\n        mstore(add(headStart, _1), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), mload(value2))\n        mstore(add(headStart, 96), mload(add(value2, _1)))\n        mstore(add(headStart, 128), mload(add(value2, 64)))\n        mstore(add(headStart, 160), 192)\n        let length := mload(value3)\n        mstore(add(headStart, 192), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 224), mload(add(add(value3, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 224), 0)\n        }\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 224)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9546":[{"length":32,"start":64},{"length":32,"start":233}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063e787bc691461008b575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009e6100993660046102e4565b6100a0565b005b6020820151825160408085015190517f31662fd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016936331662fd69361011e9389936004016103bb565b600060405180830381600087803b15801561013857600080fd5b505af115801561014c573d6000803e3d6000fd5b50505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156101a7576101a7610155565b60405290565b73ffffffffffffffffffffffffffffffffffffffff811681146101cf57600080fd5b50565b80356101dd816101ad565b919050565b600082601f8301126101f357600080fd5b813567ffffffffffffffff8082111561020e5761020e610155565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561025457610254610155565b8160405283815286602085880101111561026d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006060828403121561029f57600080fd5b6102a7610184565b905081356102b4816101ad565b8152602082013563ffffffff811681146102cd57600080fd5b806020830152506040820135604082015292915050565b600080600060a084860312156102f957600080fd5b83359250602084013567ffffffffffffffff8082111561031857600080fd5b9085019081870360a081121561032d57600080fd5b610335610184565b606082121561034357600080fd5b61034b610184565b9150833582526020840135602083015260408401356040830152818152610374606085016101d2565b6020820152608084013591508282111561038d57600080fd5b610399898386016101e2565b6040820152809550505050506103b2856040860161028d565b90509250925092565b8481526000602073ffffffffffffffffffffffffffffffffffffffff861681840152845160408401528085015160608401526040850151608084015260c060a084015283518060c085015260005b818110156104255785810183015185820160e001528201610409565b8181111561043757600060e083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160e001969550505050505056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE787BC69 EQ PUSH2 0x8B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E4 JUMP JUMPDEST PUSH2 0xA0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x20 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x31662FD600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP4 PUSH4 0x31662FD6 SWAP4 PUSH2 0x11E SWAP4 DUP10 SWAP4 PUSH1 0x4 ADD PUSH2 0x3BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP 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 0x1A7 JUMPI PUSH2 0x1A7 PUSH2 0x155 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DD DUP2 PUSH2 0x1AD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x20E JUMPI PUSH2 0x20E PUSH2 0x155 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 0x254 JUMPI PUSH2 0x254 PUSH2 0x155 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x26D 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 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x2B4 DUP2 PUSH2 0x1AD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP6 ADD SWAP1 DUP2 DUP8 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 PUSH2 0x184 JUMP JUMPDEST PUSH1 0x60 DUP3 SLT ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x34B PUSH2 0x184 JUMP JUMPDEST SWAP2 POP DUP4 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x374 PUSH1 0x60 DUP6 ADD PUSH2 0x1D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP5 ADD CALLDATALOAD SWAP2 POP DUP3 DUP3 GT ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x399 DUP10 DUP4 DUP7 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE DUP1 SWAP6 POP POP POP POP POP PUSH2 0x3B2 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x28D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 DUP5 ADD MSTORE DUP5 MLOAD PUSH1 0x40 DUP5 ADD MSTORE DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x425 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0xE0 ADD MSTORE DUP3 ADD PUSH2 0x409 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x437 JUMPI PUSH1 0x0 PUSH1 0xE0 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0xE0 ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"390:536:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:44;;;;;;;;217:42:61;205:55;;;187:74;;175:2;160:18;440:44:47;;;;;;;576:348;;;;;;:::i;:::-;;:::i;:::-;;;803:19;;;;836:21;;871:36;;;;;740:177;;;;;:29;:8;:29;;;;:177;;783:6;;740:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;576:348;;;:::o;272:184:61:-;324:77;321:1;314:88;421:4;418:1;411:15;445:4;442:1;435:15;461:248;528:2;522:9;570:4;558:17;;605:18;590:34;;626:22;;;587:62;584:88;;;652:18;;:::i;:::-;688:2;681:22;461:248;:::o;714:154::-;800:42;793:5;789:54;782:5;779:65;769:93;;858:1;855;848:12;769:93;714:154;:::o;873:134::-;941:20;;970:31;941:20;970:31;:::i;:::-;873:134;;;:::o;1012:777::-;1054:5;1107:3;1100:4;1092:6;1088:17;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1161:6;1148:20;1187:18;1224:2;1220;1217:10;1214:36;;;1230:18;;:::i;:::-;1364:2;1358:9;1426:4;1418:13;;1269:66;1414:22;;;1438:2;1410:31;1406:40;1394:53;;;1462:18;;;1482:22;;;1459:46;1456:72;;;1508:18;;:::i;:::-;1548:10;1544:2;1537:22;1583:2;1575:6;1568:18;1629:3;1622:4;1617:2;1609:6;1605:15;1601:26;1598:35;1595:55;;;1646:1;1643;1636:12;1595:55;1710:2;1703:4;1695:6;1691:17;1684:4;1676:6;1672:17;1659:54;1757:1;1750:4;1745:2;1737:6;1733:15;1729:26;1722:37;1777:6;1768:15;;;;;;1012:777;;;;:::o;1794:534::-;1862:5;1910:4;1898:9;1893:3;1889:19;1885:30;1882:50;;;1928:1;1925;1918:12;1882:50;1950:17;;:::i;:::-;1941:26;;2004:9;1991:23;2023:33;2048:7;2023:33;:::i;:::-;2065:22;;2139:2;2124:18;;2111:32;2187:10;2174:24;;2162:37;;2152:65;;2213:1;2210;2203:12;2152:65;2249:7;2244:2;2237:5;2233:14;2226:31;;2317:2;2306:9;2302:18;2289:32;2284:2;2277:5;2273:14;2266:56;1794:534;;;;:::o;2333:1205::-;2483:6;2491;2499;2552:3;2540:9;2531:7;2527:23;2523:33;2520:53;;;2569:1;2566;2559:12;2520:53;2605:9;2592:23;2582:33;;2666:2;2655:9;2651:18;2638:32;2689:18;2730:2;2722:6;2719:14;2716:34;;;2746:1;2743;2736:12;2716:34;2769:22;;;;2810:16;;;2846:3;2838:12;;2835:32;;;2863:1;2860;2853:12;2835:32;2889:17;;:::i;:::-;2926:4;2922:2;2918:13;2915:33;;;2944:1;2941;2934:12;2915:33;2972:17;;:::i;:::-;2957:32;;3027:2;3014:16;3005:7;2998:33;3086:2;3082;3078:11;3065:25;3060:2;3051:7;3047:16;3040:51;3146:2;3142;3138:11;3125:25;3120:2;3111:7;3107:16;3100:51;3174:7;3167:5;3160:22;3214:33;3241:4;3237:2;3233:13;3214:33;:::i;:::-;3209:2;3202:5;3198:14;3191:57;3294:3;3290:2;3286:12;3273:26;3257:42;;3324:2;3314:8;3311:16;3308:36;;;3340:1;3337;3330:12;3308:36;3376:44;3412:7;3401:8;3397:2;3393:17;3376:44;:::i;:::-;3371:2;3364:5;3360:14;3353:68;3440:5;3430:15;;;;;;3464:68;3524:7;3519:2;3508:9;3504:18;3464:68;:::i;:::-;3454:78;;2333:1205;;;;;:::o;3543:1098::-;3824:6;3813:9;3806:25;3787:4;3850:2;3900:42;3892:6;3888:55;3883:2;3872:9;3868:18;3861:83;3986:6;3980:13;3975:2;3964:9;3960:18;3953:41;4048:2;4040:6;4036:15;4030:22;4025:2;4014:9;4010:18;4003:50;4108:2;4100:6;4096:15;4090:22;4084:3;4073:9;4069:19;4062:51;4150:3;4144;4133:9;4129:19;4122:32;4183:6;4177:13;4227:6;4221:3;4210:9;4206:19;4199:35;4252:1;4262:141;4276:6;4273:1;4270:13;4262:141;;;4372:14;;;4368:23;;4362:30;4337:17;;;4356:3;4333:27;4326:67;4291:10;;4262:141;;;4421:6;4418:1;4415:13;4412:92;;;4492:1;4486:3;4477:6;4466:9;4462:22;4458:32;4451:43;4412:92;-1:-1:-1;4556:2:61;4544:15;4561:66;4540:88;4525:104;;;;4631:3;4521:114;;3543:1098;-1:-1:-1;;;;;;3543:1098:61:o"},"methodIdentifiers":{"initiateRegistration(bytes32,((uint256,uint256,uint256),address,bytes),(address,uint32,uint256))":"e787bc69","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ChugSplashRegistry\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orgID\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"managerInitializerData\",\"type\":\"bytes\"}],\"internalType\":\"struct RegistrationInfo\",\"name\":\"_registration\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"originEndpoint\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"destDomainID\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"relayerFee\",\"type\":\"uint256\"}],\"internalType\":\"struct CrossChainMessageInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"initiateRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ChugSplashRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LocalAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/cross-chain/LocalAdapter.sol\":\"LocalAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"@connext/interfaces/core/IConnext.sol\":{\"keccak256\":\"0x1c2f287fe81216f7060acce25747374631b94ff9a87573e1c5d36df1a3a2fdf8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2ceb15c29182ffec108b47c655f322406251c154ef13dd4e2c1624f131a63807\",\"dweb:/ipfs/QmbWGwyTUL8KrLqKPFWhoN9fDJ3ygYdWqFMf6qEi6b2Ywn\"]},\"@connext/interfaces/libraries/LibConnextStorage.sol\":{\"keccak256\":\"0xb8581253c5ebe58445c37d344fafe6126d3f7a15784337b3571637cd0068de57\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7c0de0736b0f823ec8ee871de4e83550407365f3115f3603f7dc888f23f026c\",\"dweb:/ipfs/QmTixst8JKz17UDNcmpSBtrHV66S7VrM9oTammQBkz2nF5\"]},\"@connext/interfaces/libraries/TokenId.sol\":{\"keccak256\":\"0xfa4e01760604863ea105e18380c243cd2250a7553d2b852f67ecb747f9916b6d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8bf151c51f3cc5927a863d8d9c512bc5edd3eecc86da7d70b3dcb636d303a9c1\",\"dweb:/ipfs/QmdH38rX4zg6Nsm9HRP6x5h8BRE3QC5hALNRxJsP14dPGx\"]},\"@eth-optimism/contracts-bedrock/contracts/universal/Proxy.sol\":{\"keccak256\":\"0x64d67f1936d97c87a2e42317eb162744ad5cefdc9bc8b1138ee4afe2886eb885\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b903585eb9cfc60a70bcdf4ee44220b173caff16dfb9071cd0668c7a551265\",\"dweb:/ipfs/QmXHUZ9brinN1WS9i63ocRQsQidY96WePDBhBsFRhDmVjr\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/ChugSplashManagerProxy.sol\":{\"keccak256\":\"0x08f7a01c1e8ed1a3ace823da2c800cac83ee0f1b686fa7d2aa9448fe9108b738\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c02af117c8c34ba3844d1a860cf5252601c649e085d33b8f1d148afa4a7e3d53\",\"dweb:/ipfs/QmSdAQDa9XkHCZ5GiG9mefe8Dyk5p54xQAfWNfy72e7dQY\"]},\"contracts/ChugSplashRegistry.sol\":{\"keccak256\":\"0xf21f036ad9a065f394db4f71f3b81a5c3bc53c82548db977a3cb4cb13045eb23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://157bbd56debc2fb38e71a25d5f07d95f177196dccf9cd9fc3c127b83e2a7edca\",\"dweb:/ipfs/QmXWqnsD1pWF1UGJ2nf553XED6TtszzoTcxeRmcj9kZSvL\"]},\"contracts/ChugSplashRegistryEvents.sol\":{\"keccak256\":\"0x118e5d3674d77632a6ef220f4e3b382874f43667cda8f4221691c8b0145361d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db406839a33143ecd104e076e325f46d571a1eb6faa7c5925f6c578b9ab3091f\",\"dweb:/ipfs/QmRLDpdGgB8erEniC17xWTRkUMAaueot1QT9mty95ugmxo\"]},\"contracts/Semver.sol\":{\"keccak256\":\"0x52d8f765cd6217080ac1f72ec9e3c890266721dac6140a57191b06929d24998f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b43be60ae13919f8e4a33176b0688d862e6beb96e82061419247a76f49f3905\",\"dweb:/ipfs/QmTd8jUQs9miD6r5vKjcC1xsoMhoKECSSUiQugKn5Qsjgx\"]},\"contracts/adapters/cross-chain/LocalAdapter.sol\":{\"keccak256\":\"0xfe882f41a559d94ad1aeea64c9d66e21e8dea741d6411a3da72a2fd0f834f374\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://260c24ddbbdb9769e40bbc0c0e206c7e97853eb475aaa12a485da23ec8be05c8\",\"dweb:/ipfs/QmRqgfyPdhYMQPaQyQSvRazQecRB19S44nD2UxM5afm61Z\"]},\"contracts/interfaces/IChugSplashManager.sol\":{\"keccak256\":\"0x37998e41256bc1141a1942cdd3a78937624b0cf76191fdc5c31dd7d38a6683e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7071f51a896ef06e787ea998ba876d461ef6828cfa3a5c9e3b6a456efd36f8\",\"dweb:/ipfs/QmXP3vojTfjiNqvXNxprz166wJXnqMvTL3bmdNdZv9rgfG\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]},\"contracts/interfaces/ICrossChainAdapter.sol\":{\"keccak256\":\"0xed516a15c78b8fd74865b7e8c126a565b6fcebe75432797bd0d18b1f12a9c686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3f2d9123da2e50fa15e6d43be2c951e82931dcb220ec2ec3e5c4b770bb9613\",\"dweb:/ipfs/QmYuqjXYAWyaeQc88bmgKqTyQMBtJ45pcXgHuqoDKBjzfX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IChugSplashManager.sol":{"IChugSplashManager":{"abi":[{"inputs":[],"name":"activeDeploymentId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_deploymentId","type":"bytes32"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelActiveChugSplashDeployment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_deploymentId","type":"bytes32"}],"name":"deployments","outputs":[{"components":[{"internalType":"enum DeploymentStatus","name":"status","type":"uint8"},{"internalType":"bool[]","name":"actions","type":"bool[]"},{"internalType":"uint256","name":"targets","type":"uint256"},{"internalType":"bytes32","name":"actionRoot","type":"bytes32"},{"internalType":"bytes32","name":"targetRoot","type":"bytes32"},{"internalType":"uint256","name":"numImmutableContracts","type":"uint256"},{"internalType":"uint256","name":"actionsExecuted","type":"uint256"},{"internalType":"uint256","name":"timeClaimed","type":"uint256"},{"internalType":"address","name":"selectedExecutor","type":"address"},{"internalType":"bool","name":"remoteExecution","type":"bool"},{"internalType":"string","name":"configUri","type":"string"}],"internalType":"struct DeploymentState","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"enum ChugSplashActionType","name":"actionType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"},{"internalType":"string","name":"referenceName","type":"string"}],"internalType":"struct RawChugSplashAction[]","name":"_actions","type":"tuple[]"},{"internalType":"uint256[]","name":"_actionIndexes","type":"uint256[]"},{"internalType":"bytes32[][]","name":"_proofs","type":"bytes32[][]"}],"name":"executeActions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_contractKindHash","type":"bytes32"},{"internalType":"address","name":"_newOwner","type":"address"}],"name":"exportProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"projectName","type":"string"},{"internalType":"string","name":"referenceName","type":"string"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"}],"internalType":"struct ChugSplashTarget[]","name":"_targets","type":"tuple[]"},{"internalType":"bytes32[][]","name":"_proofs","type":"bytes32[][]"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"projectName","type":"string"},{"internalType":"string","name":"referenceName","type":"string"},{"internalType":"address payable","name":"addr","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"contractKindHash","type":"bytes32"}],"internalType":"struct ChugSplashTarget[]","name":"_targets","type":"tuple[]"},{"internalType":"bytes32[][]","name":"_proofs","type":"bytes32[][]"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isExecuting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isProposer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"organizationID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_actionRoot","type":"bytes32"},{"internalType":"bytes32","name":"_targetRoot","type":"bytes32"},{"internalType":"uint256","name":"_numActions","type":"uint256"},{"internalType":"uint256","name":"_numTargets","type":"uint256"},{"internalType":"uint256","name":"_numImmutableContracts","type":"uint256"},{"internalType":"string","name":"_configUri","type":"string"},{"internalType":"bool","name":"_remoteExecution","type":"bool"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IChugSplashRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"activeDeploymentId()":"dfba66f0","approve(bytes32)":"a53a1adf","cancelActiveChugSplashDeployment()":"5229c975","deployments(bytes32)":"37404017","executeActions((uint8,bytes,address,bytes32,string)[],uint256[],bytes32[][])":"a47d0801","exportProxy(address,bytes32,address)":"75cd65e1","finalizeUpgrade((string,string,address,address,bytes32)[],bytes32[][])":"f23d6142","initialize(bytes)":"439fab91","initiateUpgrade((string,string,address,address,bytes32)[],bytes32[][])":"9449a44f","isExecuting()":"e8ea2d08","isProposer(address)":"74ec29a0","organizationID()":"f0317111","propose(bytes32,bytes32,uint256,uint256,uint256,string,bool)":"a7882f93","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"activeDeploymentId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_deploymentId\",\"type\":\"bytes32\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelActiveChugSplashDeployment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_deploymentId\",\"type\":\"bytes32\"}],\"name\":\"deployments\",\"outputs\":[{\"components\":[{\"internalType\":\"enum DeploymentStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bool[]\",\"name\":\"actions\",\"type\":\"bool[]\"},{\"internalType\":\"uint256\",\"name\":\"targets\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"actionRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"targetRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"numImmutableContracts\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actionsExecuted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeClaimed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"selectedExecutor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"remoteExecution\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"configUri\",\"type\":\"string\"}],\"internalType\":\"struct DeploymentState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum ChugSplashActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"}],\"internalType\":\"struct RawChugSplashAction[]\",\"name\":\"_actions\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_actionIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_proofs\",\"type\":\"bytes32[][]\"}],\"name\":\"executeActions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractKindHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"exportProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"projectName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ChugSplashTarget[]\",\"name\":\"_targets\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_proofs\",\"type\":\"bytes32[][]\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"projectName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"referenceName\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"contractKindHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ChugSplashTarget[]\",\"name\":\"_targets\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"_proofs\",\"type\":\"bytes32[][]\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isExecuting\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"isProposer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"organizationID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_actionRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_targetRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_numActions\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numTargets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numImmutableContracts\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_configUri\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_remoteExecution\",\"type\":\"bool\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IChugSplashRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"initialize(bytes)\":{\"params\":{\"_data\":\"Arbitrary initialization data. This ensures that a consistent interface can be used to initialize future versions of the ChugSplashManager.\"},\"returns\":{\"_0\":\"Arbitrary bytes.\"}},\"isExecuting()\":{\"returns\":{\"_0\":\"Whether or not a deployment is currently being executed.\"}},\"organizationID()\":{\"returns\":{\"_0\":\"32-byte organization ID.\"}},\"registry()\":{\"returns\":{\"_0\":\"Address of the ChugSplashRegistry.\"}}},\"title\":\"ChugSplashManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(bytes)\":{\"notice\":\"Initializes this contract. Must only be callable one time, which should occur immediately after contract creation. This is necessary because this contract is meant to exist as an implementation behind proxies. Note that the implementation must be initialized with all zero-bytes to prevent anyone from owning it.\"},\"isExecuting()\":{\"notice\":\"Indicates whether or not a deployment is currently being executed.\"},\"organizationID()\":{\"notice\":\"Organization ID for this contract.\"},\"registry()\":{\"notice\":\"The ChugSplashRegistry.\"}},\"notice\":\"Interface that must be inherited by the ChugSplashManager contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IChugSplashManager.sol\":\"IChugSplashManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/interfaces/IChugSplashManager.sol\":{\"keccak256\":\"0x37998e41256bc1141a1942cdd3a78937624b0cf76191fdc5c31dd7d38a6683e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7071f51a896ef06e787ea998ba876d461ef6828cfa3a5c9e3b6a456efd36f8\",\"dweb:/ipfs/QmXP3vojTfjiNqvXNxprz166wJXnqMvTL3bmdNdZv9rgfG\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IChugSplashRegistry.sol":{"IChugSplashRegistry":{"abi":[{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"adapters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractKindHash","type":"bytes32"},{"internalType":"address","name":"_adapter","type":"address"}],"name":"addContractKind","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"addVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_event","type":"string"}],"name":"announce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_event","type":"string"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"announceWithData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_organizationID","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"},{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"_version","type":"tuple"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeRegistration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managerProxies","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"projects","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adapters(bytes32)":"72c6838f","addContractKind(bytes32,address)":"4b67f1a8","addVersion(address)":"11cdf27a","announce(string)":"ea0a5237","announceWithData(string,bytes)":"f52cc7fd","finalizeRegistration(bytes32,address,(uint256,uint256,uint256),bytes)":"31662fd6","managerProxies(address)":"b696e7fa","projects(bytes32)":"b96ea12d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"adapters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractKindHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_adapter\",\"type\":\"address\"}],\"name\":\"addContractKind\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_event\",\"type\":\"string\"}],\"name\":\"announce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_event\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"announceWithData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_organizationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"_version\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"finalizeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"managerProxies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"projects\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IChugSplashRegistry.sol\":\"IChugSplashRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/interfaces/IChugSplashRegistry.sol\":{\"keccak256\":\"0x8e740d1fd438be475cb3920e7f68e6ee40835da7d6717f49aec87731c96ed331\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61245da3a89ac5c936b5eb71884096c0a841397c2479f45c524b764d18b375af\",\"dweb:/ipfs/QmdR3MEwU1DgoYzVgo9Ab5Vf6Yx4i5sSYvbQ6ua4Cd735s\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ICreate3.sol":{"ICreate3":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_creationCode","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"deploy","outputs":[{"internalType":"address","name":"deployed","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_deployer","type":"address"}],"name":"getAddressFromDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"deploy(bytes32,bytes,uint256)":"c7aeef0f","getAddress(bytes32)":"21f8a721","getAddressFromDeployer(bytes32,address)":"e4e13140"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_creationCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"deployed\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_deployer\",\"type\":\"address\"}],\"name\":\"getAddressFromDeployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ICreate3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for a Create3 contract. Normally, this functionality would in a library. Instead, we put it in a contract so that other contracts can use non-standard Create3 formulas in a modular way. If we opted for a library to implement this functionality, we would need separate copies of each contract that uses the library, where each contract would use a different implementation of the Create3 formula.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICreate3.sol\":\"ICreate3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ICreate3.sol\":{\"keccak256\":\"0xeeadaa461d5c3f309ed45f7060a21dc47e26e35ed94d94d27f574ba995b14f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7ade72319651066c7899e1b76723e4652ea1898ffd047d6af257223ea021ae9\",\"dweb:/ipfs/Qmew5BoRkiGhfgeRcSd3zmEn2J43sKt259kaq2ZcBhKhCX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/ICrossChainAdapter.sol":{"ICrossChainAdapter":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_orgID","type":"bytes32"},{"components":[{"components":[{"internalType":"uint256","name":"major","type":"uint256"},{"internalType":"uint256","name":"minor","type":"uint256"},{"internalType":"uint256","name":"patch","type":"uint256"}],"internalType":"struct Version","name":"version","type":"tuple"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"managerInitializerData","type":"bytes"}],"internalType":"struct RegistrationInfo","name":"_registration","type":"tuple"},{"components":[{"internalType":"address payable","name":"originEndpoint","type":"address"},{"internalType":"uint32","name":"destDomainID","type":"uint32"},{"internalType":"uint256","name":"relayerFee","type":"uint256"}],"internalType":"struct CrossChainMessageInfo","name":"_message","type":"tuple"}],"name":"initiateRegistration","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"initiateRegistration(bytes32,((uint256,uint256,uint256),address,bytes),(address,uint32,uint256))":"e787bc69"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_orgID\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"major\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patch\",\"type\":\"uint256\"}],\"internalType\":\"struct Version\",\"name\":\"version\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"managerInitializerData\",\"type\":\"bytes\"}],\"internalType\":\"struct RegistrationInfo\",\"name\":\"_registration\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"originEndpoint\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"destDomainID\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"relayerFee\",\"type\":\"uint256\"}],\"internalType\":\"struct CrossChainMessageInfo\",\"name\":\"_message\",\"type\":\"tuple\"}],\"name\":\"initiateRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ICrossChainAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICrossChainAdapter.sol\":\"ICrossChainAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/ChugSplashDataTypes.sol\":{\"keccak256\":\"0x225549d47c84a82ffb9740f4fe384257bb67f65a5bd113521b0509db78d5cdd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ff37a8dece4b861e8005ee2f6253bc72e4c00aad3925e3a236deea19c7763b\",\"dweb:/ipfs/Qmd4wTCCW31hCvR9nuQzNKSE8TSadGAHyM8sXT8758iKAc\"]},\"contracts/interfaces/ICrossChainAdapter.sol\":{\"keccak256\":\"0xed516a15c78b8fd74865b7e8c126a565b6fcebe75432797bd0d18b1f12a9c686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d3f2d9123da2e50fa15e6d43be2c951e82931dcb220ec2ec3e5c4b770bb9613\",\"dweb:/ipfs/QmYuqjXYAWyaeQc88bmgKqTyQMBtJ45pcXgHuqoDKBjzfX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IGasPriceCalculator.sol":{"IGasPriceCalculator":{"abi":[{"inputs":[],"name":"getGasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getGasPrice()":"455259cb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getGasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getGasPrice()\":{\"returns\":{\"_0\":\"The gas price of the current transaction.\"}}},\"title\":\"IGasPriceCalculator\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getGasPrice()\":{\"notice\":\"Returns the gas price of the current transaction.\"}},\"notice\":\"Interface for a contract that calculates the gas price of a transaction. This is simply `tx.gasprice` on Ethereum and networks that have the same semantics for `tx.gasprice`. On other chains, however, a non-standard gas price may be used.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IGasPriceCalculator.sol\":\"IGasPriceCalculator\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IGasPriceCalculator.sol\":{\"keccak256\":\"0x04aafb0456de4888329e7e8307e059efa57216d66c4559386260f1011cf2e246\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1e45bd8f9cca7e035c000afdf44985b5b37a80c6918a9b3d31104fe5fbcf901\",\"dweb:/ipfs/QmXCBMD1ZzgrxmLCxNhVMdJaizHtJvh34Fac5WEVFjf4DQ\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IOwnable.sol":{"IOwnable":{"abi":[{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IOwnable.sol\":\"IOwnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xbb7311da8d3e866339f05495de643e7ecad09b6bd70b368a96be01859727eb06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa381f4dbc56f8156b1c98fe72dde55c9d8f22632385312adaeb5170c9bed7f9\",\"dweb:/ipfs/Qmc5wEK6GyC6dajuE9XRV3pbqiHMr1RGGEXk98NDpdSngC\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IProxyAdapter.sol":{"IProxyAdapter":{"abi":[{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"name":"finalizeUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"}],"name":"initiateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_proxy","type":"address"},{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","finalizeUpgrade(address,address)":"192957c8","initiateUpgrade(address)":"479aa927","setStorage(address,bytes32,uint8,bytes)":"9bc6ee9a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"finalizeUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"}],\"name\":\"initiateUpgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"params\":{\"_newAdmin\":\"Address of the new admin.\",\"_proxy\":\"Address of the proxy.\"}},\"finalizeUpgrade(address,address)\":{\"params\":{\"_implementation\":\"Address of the proxy's final implementation.\",\"_proxy\":\"Address of the proxy.\"}},\"initiateUpgrade(address)\":{\"params\":{\"_proxy\":\"Address of the proxy.\"}},\"setStorage(address,bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_proxy\":\"Address of the proxy to modify.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] (inclusive).\"}}},\"title\":\"IProxyAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"notice\":\"Changes the admin of the proxy. Note that this function is not triggered during a deployment. Instead, it's only triggered if transferring ownership of the UUPS proxy away from the ChugSplashManager, which occurs outside of the deployment process.\"},\"finalizeUpgrade(address,address)\":{\"notice\":\"Complete a deployment or upgrade of a proxy.\"},\"initiateUpgrade(address)\":{\"notice\":\"Initiate a deployment or upgrade of a proxy.\"},\"setStorage(address,bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset.\"}},\"notice\":\"Interface that must be inherited by each proxy adapter. Proxy adapters allow other contracts to delegatecall into proxies of different types (e.g. Transparent, UUPS, etc.) through a standard interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IProxyAdapter.sol\":\"IProxyAdapter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProxyAdapter.sol\":{\"keccak256\":\"0x48f5f46c6fe6e36f52d861783e8bba551d312a41cd0abee9d256314e6b720ded\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://081672af4de6cbd120e7cda0ffee02da555550ec3858980bc76069c0d2c4e55c\",\"dweb:/ipfs/QmSNFy1mHdxSbKUvP5DJt8euJt1Gun356dqkfZHAdmUf2W\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/interfaces/IProxyUpdater.sol":{"IProxyUpdater":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"setStorage(bytes32,uint8,bytes)":"1ea94702"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"setStorage(bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] (inclusive).\"}}},\"title\":\"IProxyUpdater\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setStorage(bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset.\"}},\"notice\":\"Interface that must be inherited by each proxy updater. Contracts that inherit from this interface are meant to be set as the implementation of a proxy during an upgrade, then delegatecalled by the proxy's owner to change the value of a storage slot within the proxy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IProxyUpdater.sol\":\"IProxyUpdater\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/updaters/DefaultUpdater.sol":{"DefaultUpdater":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061053b806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631ea9470214610030575b600080fd5b61004361003e36600461027b565b610045565b005b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061009e575033155b61012f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f44656661756c74557064617465723a2063616c6c6572206973206e6f7420616460448201527f6d696e000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61013a83838361013f565b505050565b6020815111156101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f50726f7879557064617465723a2076616c756520697320746f6f206c617267656044820152606401610126565b60006101b68261036c565b905081516020036101c957808455610246565b835482516000906101db9060086103c2565b905060006101ea8660086103e1565b60ff16905060008160016101ff8560026104ec565b61020991906104ff565b901b199050838116600084610220856101006104ff565b61022a91906104ff565b905086811c600061023b8285610516565b8c5550505050505050505b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561029057600080fd5b83359250602084013560ff811681146102a857600080fd5b9150604084013567ffffffffffffffff808211156102c557600080fd5b818601915086601f8301126102d957600080fd5b8135818111156102eb576102eb61024c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156103315761033161024c565b8160405282815289602084870101111561034a57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8051602080830151919081101561038d576000198160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160001904831182151516156103dc576103dc610393565b500290565b600060ff821660ff84168160ff048111821515161561040257610402610393565b029392505050565b600181815b8085111561044557816000190482111561042b5761042b610393565b8085161561043857918102915b93841c939080029061040f565b509250929050565b60008261045c575060016104e6565b81610469575060006104e6565b816001811461047f5760028114610489576104a5565b60019150506104e6565b60ff84111561049a5761049a610393565b50506001821b6104e6565b5060208310610133831016604e8410600b84101617156104c8575081810a6104e6565b6104d2838361040a565b806000190482111561040257610402610393565b92915050565b60006104f8838361044d565b9392505050565b60008282101561051157610511610393565b500390565b6000821982111561052957610529610393565b50019056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x53B DUP1 PUSH2 0x20 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1EA94702 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x27B JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x9E JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x12F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x44656661756C74557064617465723A2063616C6C6572206973206E6F74206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D696E0000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x13A DUP4 DUP4 DUP4 PUSH2 0x13F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD GT ISZERO PUSH2 0x1AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F7879557064617465723A2076616C756520697320746F6F206C61726765 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B6 DUP3 PUSH2 0x36C JUMP JUMPDEST SWAP1 POP DUP2 MLOAD PUSH1 0x20 SUB PUSH2 0x1C9 JUMPI DUP1 DUP5 SSTORE PUSH2 0x246 JUMP JUMPDEST DUP4 SLOAD DUP3 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x1DB SWAP1 PUSH1 0x8 PUSH2 0x3C2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EA DUP7 PUSH1 0x8 PUSH2 0x3E1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH2 0x1FF DUP6 PUSH1 0x2 PUSH2 0x4EC JUMP JUMPDEST PUSH2 0x209 SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST SWAP1 SHL NOT SWAP1 POP DUP4 DUP2 AND PUSH1 0x0 DUP5 PUSH2 0x220 DUP6 PUSH2 0x100 PUSH2 0x4FF JUMP JUMPDEST PUSH2 0x22A SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP7 DUP2 SHR PUSH1 0x0 PUSH2 0x23B DUP3 DUP6 PUSH2 0x516 JUMP JUMPDEST DUP13 SSTORE POP POP POP POP POP POP POP POP JUMPDEST POP POP POP 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 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2EB JUMPI PUSH2 0x2EB PUSH2 0x24C 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 0x331 JUMPI PUSH2 0x331 PUSH2 0x24C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x34A 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 DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x393 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP2 PUSH1 0xFF DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x402 JUMPI PUSH2 0x402 PUSH2 0x393 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x445 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x42B JUMPI PUSH2 0x42B PUSH2 0x393 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x438 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x40F JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x45C JUMPI POP PUSH1 0x1 PUSH2 0x4E6 JUMP JUMPDEST DUP2 PUSH2 0x469 JUMPI POP PUSH1 0x0 PUSH2 0x4E6 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x47F JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x489 JUMPI PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x4E6 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x49A JUMPI PUSH2 0x49A PUSH2 0x393 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x4E6 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x4C8 JUMPI POP DUP2 DUP2 EXP PUSH2 0x4E6 JUMP JUMPDEST PUSH2 0x4D2 DUP4 DUP4 PUSH2 0x40A JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x402 JUMPI PUSH2 0x402 PUSH2 0x393 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F8 DUP4 DUP4 PUSH2 0x44D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x511 JUMPI PUSH2 0x511 PUSH2 0x393 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x529 JUMPI PUSH2 0x529 PUSH2 0x393 JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"277:1365:56:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_getAdmin_9969":{"entryPoint":null,"id":9969,"parameterSlots":0,"returnSlots":1},"@setStorage_10260":{"entryPoint":319,"id":10260,"parameterSlots":3,"returnSlots":0},"@setStorage_9956":{"entryPoint":69,"id":9956,"parameterSlots":3,"returnSlots":0},"abi_decode_tuple_t_bytes32t_uint8t_bytes_memory_ptr":{"entryPoint":635,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_stringliteral_04eba2f101981f474d9dcc87f979092f9f0c776b60211999e448eaa7f12d3e13__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1302,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":1034,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":1260,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":1101,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":962,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint8":{"entryPoint":993,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1279,"id":null,"parameterSlots":2,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":876,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":915,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":588,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4959:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"66:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:61"},"nodeType":"YulFunctionCall","src":"56:88:61"},"nodeType":"YulExpressionStatement","src":"56:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"163:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"153:6:61"},"nodeType":"YulFunctionCall","src":"153:15:61"},"nodeType":"YulExpressionStatement","src":"153:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"184:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"187:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"177:6:61"},"nodeType":"YulFunctionCall","src":"177:15:61"},"nodeType":"YulExpressionStatement","src":"177:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:184:61"},{"body":{"nodeType":"YulBlock","src":"314:1094:61","statements":[{"body":{"nodeType":"YulBlock","src":"360:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"369:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"372:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"362:6:61"},"nodeType":"YulFunctionCall","src":"362:12:61"},"nodeType":"YulExpressionStatement","src":"362:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"335:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"344:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"331:3:61"},"nodeType":"YulFunctionCall","src":"331:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"356:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"327:3:61"},"nodeType":"YulFunctionCall","src":"327:32:61"},"nodeType":"YulIf","src":"324:52:61"},{"nodeType":"YulAssignment","src":"385:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"408:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"395:12:61"},"nodeType":"YulFunctionCall","src":"395:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"385:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"427:45:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"468:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"453:3:61"},"nodeType":"YulFunctionCall","src":"453:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"440:12:61"},"nodeType":"YulFunctionCall","src":"440:32:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"431:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"520:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"529:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"532:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"522:6:61"},"nodeType":"YulFunctionCall","src":"522:12:61"},"nodeType":"YulExpressionStatement","src":"522:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"494:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"505:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"512:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"501:3:61"},"nodeType":"YulFunctionCall","src":"501:16:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"491:2:61"},"nodeType":"YulFunctionCall","src":"491:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"484:6:61"},"nodeType":"YulFunctionCall","src":"484:35:61"},"nodeType":"YulIf","src":"481:55:61"},{"nodeType":"YulAssignment","src":"545:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"555:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"545:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"569:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"600:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"611:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"596:3:61"},"nodeType":"YulFunctionCall","src":"596:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"583:12:61"},"nodeType":"YulFunctionCall","src":"583:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"573:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"624:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"634:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"628:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"679:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"688:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"691:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"681:6:61"},"nodeType":"YulFunctionCall","src":"681:12:61"},"nodeType":"YulExpressionStatement","src":"681:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"667:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"675:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"664:2:61"},"nodeType":"YulFunctionCall","src":"664:14:61"},"nodeType":"YulIf","src":"661:34:61"},{"nodeType":"YulVariableDeclaration","src":"704:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"718:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"729:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"714:3:61"},"nodeType":"YulFunctionCall","src":"714:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"708:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"784:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"793:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"796:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"786:6:61"},"nodeType":"YulFunctionCall","src":"786:12:61"},"nodeType":"YulExpressionStatement","src":"786:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"763:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"767:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"759:3:61"},"nodeType":"YulFunctionCall","src":"759:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"774:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"755:3:61"},"nodeType":"YulFunctionCall","src":"755:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"748:6:61"},"nodeType":"YulFunctionCall","src":"748:35:61"},"nodeType":"YulIf","src":"745:55:61"},{"nodeType":"YulVariableDeclaration","src":"809:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"832:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"819:12:61"},"nodeType":"YulFunctionCall","src":"819:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"813:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"858:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"860:16:61"},"nodeType":"YulFunctionCall","src":"860:18:61"},"nodeType":"YulExpressionStatement","src":"860:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"850:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"854:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"847:2:61"},"nodeType":"YulFunctionCall","src":"847:10:61"},"nodeType":"YulIf","src":"844:36:61"},{"nodeType":"YulVariableDeclaration","src":"889:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"899:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"893:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"974:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"994:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"988:5:61"},"nodeType":"YulFunctionCall","src":"988:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"978:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1006:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1028:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1052:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1056:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1048:3:61"},"nodeType":"YulFunctionCall","src":"1048:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"1063:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1044:3:61"},"nodeType":"YulFunctionCall","src":"1044:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"1068:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:61"},"nodeType":"YulFunctionCall","src":"1040:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"1073:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1036:3:61"},"nodeType":"YulFunctionCall","src":"1036:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1024:3:61"},"nodeType":"YulFunctionCall","src":"1024:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1010:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1136:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1138:16:61"},"nodeType":"YulFunctionCall","src":"1138:18:61"},"nodeType":"YulExpressionStatement","src":"1138:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1095:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1107:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1092:2:61"},"nodeType":"YulFunctionCall","src":"1092:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1115:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1127:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:61"},"nodeType":"YulFunctionCall","src":"1112:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1089:2:61"},"nodeType":"YulFunctionCall","src":"1089:46:61"},"nodeType":"YulIf","src":"1086:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1174:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1178:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1167:6:61"},"nodeType":"YulFunctionCall","src":"1167:22:61"},"nodeType":"YulExpressionStatement","src":"1167:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1205:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1213:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1198:6:61"},"nodeType":"YulFunctionCall","src":"1198:18:61"},"nodeType":"YulExpressionStatement","src":"1198:18:61"},{"body":{"nodeType":"YulBlock","src":"1262:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1271:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1274:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1264:6:61"},"nodeType":"YulFunctionCall","src":"1264:12:61"},"nodeType":"YulExpressionStatement","src":"1264:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1239:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1243:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1235:3:61"},"nodeType":"YulFunctionCall","src":"1235:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"1248:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1231:3:61"},"nodeType":"YulFunctionCall","src":"1231:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1253:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1228:2:61"},"nodeType":"YulFunctionCall","src":"1228:33:61"},"nodeType":"YulIf","src":"1225:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1304:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1312:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:61"},"nodeType":"YulFunctionCall","src":"1300:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1321:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1325:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1317:3:61"},"nodeType":"YulFunctionCall","src":"1317:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1330:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1287:12:61"},"nodeType":"YulFunctionCall","src":"1287:46:61"},"nodeType":"YulExpressionStatement","src":"1287:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1357:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1365:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1353:3:61"},"nodeType":"YulFunctionCall","src":"1353:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1370:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1349:3:61"},"nodeType":"YulFunctionCall","src":"1349:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"1375:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:61"},"nodeType":"YulFunctionCall","src":"1342:35:61"},"nodeType":"YulExpressionStatement","src":"1342:35:61"},{"nodeType":"YulAssignment","src":"1386:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1396:6:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1386:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint8t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"264:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"275:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"287:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"295:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"303:6:61","type":""}],"src":"203:1205:61"},{"body":{"nodeType":"YulBlock","src":"1587:225:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1604:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1615:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1597:6:61"},"nodeType":"YulFunctionCall","src":"1597:21:61"},"nodeType":"YulExpressionStatement","src":"1597:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1638:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1649:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1634:3:61"},"nodeType":"YulFunctionCall","src":"1634:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"1654:2:61","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1627:6:61"},"nodeType":"YulFunctionCall","src":"1627:30:61"},"nodeType":"YulExpressionStatement","src":"1627:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1677:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1688:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1673:3:61"},"nodeType":"YulFunctionCall","src":"1673:18:61"},{"hexValue":"44656661756c74557064617465723a2063616c6c6572206973206e6f74206164","kind":"string","nodeType":"YulLiteral","src":"1693:34:61","type":"","value":"DefaultUpdater: caller is not ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1666:6:61"},"nodeType":"YulFunctionCall","src":"1666:62:61"},"nodeType":"YulExpressionStatement","src":"1666:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1748:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1759:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1744:3:61"},"nodeType":"YulFunctionCall","src":"1744:18:61"},{"hexValue":"6d696e","kind":"string","nodeType":"YulLiteral","src":"1764:5:61","type":"","value":"min"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1737:6:61"},"nodeType":"YulFunctionCall","src":"1737:33:61"},"nodeType":"YulExpressionStatement","src":"1737:33:61"},{"nodeType":"YulAssignment","src":"1779:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1791:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1802:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1787:3:61"},"nodeType":"YulFunctionCall","src":"1787:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1779:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_04eba2f101981f474d9dcc87f979092f9f0c776b60211999e448eaa7f12d3e13__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1564:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1578:4:61","type":""}],"src":"1413:399:61"},{"body":{"nodeType":"YulBlock","src":"1991:182:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2008:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2001:6:61"},"nodeType":"YulFunctionCall","src":"2001:21:61"},"nodeType":"YulExpressionStatement","src":"2001:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2042:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2053:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:61"},"nodeType":"YulFunctionCall","src":"2038:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2058:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2031:6:61"},"nodeType":"YulFunctionCall","src":"2031:30:61"},"nodeType":"YulExpressionStatement","src":"2031:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2081:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2092:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2077:3:61"},"nodeType":"YulFunctionCall","src":"2077:18:61"},{"hexValue":"50726f7879557064617465723a2076616c756520697320746f6f206c61726765","kind":"string","nodeType":"YulLiteral","src":"2097:34:61","type":"","value":"ProxyUpdater: value is too large"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2070:6:61"},"nodeType":"YulFunctionCall","src":"2070:62:61"},"nodeType":"YulExpressionStatement","src":"2070:62:61"},{"nodeType":"YulAssignment","src":"2141:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2153:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2164:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2149:3:61"},"nodeType":"YulFunctionCall","src":"2149:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2141:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1968:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1982:4:61","type":""}],"src":"1817:356:61"},{"body":{"nodeType":"YulBlock","src":"2272:263:61","statements":[{"nodeType":"YulVariableDeclaration","src":"2282:26:61","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2302:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2296:5:61"},"nodeType":"YulFunctionCall","src":"2296:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2286:6:61","type":""}]},{"nodeType":"YulAssignment","src":"2317:32:61","value":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2336:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"2343:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2332:3:61"},"nodeType":"YulFunctionCall","src":"2332:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2326:5:61"},"nodeType":"YulFunctionCall","src":"2326:23:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2317:5:61"}]},{"body":{"nodeType":"YulBlock","src":"2386:143:61","statements":[{"nodeType":"YulAssignment","src":"2400:119:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2413:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2428:1:61","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2435:4:61","type":"","value":"0x20"},{"name":"length","nodeType":"YulIdentifier","src":"2441:6:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2431:3:61"},"nodeType":"YulFunctionCall","src":"2431:17:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2424:3:61"},"nodeType":"YulFunctionCall","src":"2424:25:61"},{"kind":"number","nodeType":"YulLiteral","src":"2451:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2420:3:61"},"nodeType":"YulFunctionCall","src":"2420:98:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2409:3:61"},"nodeType":"YulFunctionCall","src":"2409:110:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2400:5:61"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2364:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"2372:4:61","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2361:2:61"},"nodeType":"YulFunctionCall","src":"2361:16:61"},"nodeType":"YulIf","src":"2358:171:61"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2252:5:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2262:5:61","type":""}],"src":"2178:357:61"},{"body":{"nodeType":"YulBlock","src":"2572:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2589:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2592:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2582:6:61"},"nodeType":"YulFunctionCall","src":"2582:88:61"},"nodeType":"YulExpressionStatement","src":"2582:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2686:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2689:4:61","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2679:6:61"},"nodeType":"YulFunctionCall","src":"2679:15:61"},"nodeType":"YulExpressionStatement","src":"2679:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2710:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2713:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2703:6:61"},"nodeType":"YulFunctionCall","src":"2703:15:61"},"nodeType":"YulExpressionStatement","src":"2703:15:61"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"2540:184:61"},{"body":{"nodeType":"YulBlock","src":"2781:176:61","statements":[{"body":{"nodeType":"YulBlock","src":"2900:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"2902:16:61"},"nodeType":"YulFunctionCall","src":"2902:18:61"},"nodeType":"YulExpressionStatement","src":"2902:18:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2812:1:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2805:6:61"},"nodeType":"YulFunctionCall","src":"2805:9:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2798:6:61"},"nodeType":"YulFunctionCall","src":"2798:17:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2820:1:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2827:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"2895:1:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2823:3:61"},"nodeType":"YulFunctionCall","src":"2823:74:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2817:2:61"},"nodeType":"YulFunctionCall","src":"2817:81:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2794:3:61"},"nodeType":"YulFunctionCall","src":"2794:105:61"},"nodeType":"YulIf","src":"2791:131:61"},{"nodeType":"YulAssignment","src":"2931:20:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2946:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"2949:1:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2942:3:61"},"nodeType":"YulFunctionCall","src":"2942:9:61"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"2931:7:61"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2760:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"2763:1:61","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"2769:7:61","type":""}],"src":"2729:228:61"},{"body":{"nodeType":"YulBlock","src":"3012:188:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3022:23:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3037:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3040:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3033:3:61"},"nodeType":"YulFunctionCall","src":"3033:12:61"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"3026:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3054:23:61","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3069:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3072:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3065:3:61"},"nodeType":"YulFunctionCall","src":"3065:12:61"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"3058:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"3139:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3141:16:61"},"nodeType":"YulFunctionCall","src":"3141:18:61"},"nodeType":"YulExpressionStatement","src":"3141:18:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"3107:3:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3100:6:61"},"nodeType":"YulFunctionCall","src":"3100:11:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3093:6:61"},"nodeType":"YulFunctionCall","src":"3093:19:61"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"3117:3:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3126:4:61","type":"","value":"0xff"},{"name":"x_1","nodeType":"YulIdentifier","src":"3132:3:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3122:3:61"},"nodeType":"YulFunctionCall","src":"3122:14:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3114:2:61"},"nodeType":"YulFunctionCall","src":"3114:23:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3089:3:61"},"nodeType":"YulFunctionCall","src":"3089:49:61"},"nodeType":"YulIf","src":"3086:75:61"},{"nodeType":"YulAssignment","src":"3170:24:61","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"3185:3:61"},{"name":"y_1","nodeType":"YulIdentifier","src":"3190:3:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3181:3:61"},"nodeType":"YulFunctionCall","src":"3181:13:61"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"3170:7:61"}]}]},"name":"checked_mul_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2991:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"2994:1:61","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"3000:7:61","type":""}],"src":"2962:238:61"},{"body":{"nodeType":"YulBlock","src":"3269:418:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3279:16:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3294:1:61","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"3283:7:61","type":""}]},{"nodeType":"YulAssignment","src":"3304:16:61","value":{"name":"power_1","nodeType":"YulIdentifier","src":"3313:7:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3304:5:61"}]},{"nodeType":"YulAssignment","src":"3329:13:61","value":{"name":"_base","nodeType":"YulIdentifier","src":"3337:5:61"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"3329:4:61"}]},{"body":{"nodeType":"YulBlock","src":"3393:288:61","statements":[{"body":{"nodeType":"YulBlock","src":"3498:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3500:16:61"},"nodeType":"YulFunctionCall","src":"3500:18:61"},"nodeType":"YulExpressionStatement","src":"3500:18:61"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3413:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3423:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"base","nodeType":"YulIdentifier","src":"3491:4:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3419:3:61"},"nodeType":"YulFunctionCall","src":"3419:77:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3410:2:61"},"nodeType":"YulFunctionCall","src":"3410:87:61"},"nodeType":"YulIf","src":"3407:113:61"},{"body":{"nodeType":"YulBlock","src":"3559:29:61","statements":[{"nodeType":"YulAssignment","src":"3561:25:61","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"3574:5:61"},{"name":"base","nodeType":"YulIdentifier","src":"3581:4:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3570:3:61"},"nodeType":"YulFunctionCall","src":"3570:16:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3561:5:61"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3540:8:61"},{"name":"power_1","nodeType":"YulIdentifier","src":"3550:7:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3536:3:61"},"nodeType":"YulFunctionCall","src":"3536:22:61"},"nodeType":"YulIf","src":"3533:55:61"},{"nodeType":"YulAssignment","src":"3601:23:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3613:4:61"},{"name":"base","nodeType":"YulIdentifier","src":"3619:4:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3609:3:61"},"nodeType":"YulFunctionCall","src":"3609:15:61"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"3601:4:61"}]},{"nodeType":"YulAssignment","src":"3637:34:61","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"3653:7:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"3662:8:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3649:3:61"},"nodeType":"YulFunctionCall","src":"3649:22:61"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"3637:8:61"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3362:8:61"},{"name":"power_1","nodeType":"YulIdentifier","src":"3372:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3359:2:61"},"nodeType":"YulFunctionCall","src":"3359:21:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3381:3:61","statements":[]},"pre":{"nodeType":"YulBlock","src":"3355:3:61","statements":[]},"src":"3351:330:61"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"3233:5:61","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"3240:8:61","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"3253:5:61","type":""},{"name":"base","nodeType":"YulTypedName","src":"3260:4:61","type":""}],"src":"3205:482:61"},{"body":{"nodeType":"YulBlock","src":"3751:807:61","statements":[{"body":{"nodeType":"YulBlock","src":"3789:52:61","statements":[{"nodeType":"YulAssignment","src":"3803:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3812:1:61","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3803:5:61"}]},{"nodeType":"YulLeave","src":"3826:5:61"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3771:8:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3764:6:61"},"nodeType":"YulFunctionCall","src":"3764:16:61"},"nodeType":"YulIf","src":"3761:80:61"},{"body":{"nodeType":"YulBlock","src":"3874:52:61","statements":[{"nodeType":"YulAssignment","src":"3888:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3897:1:61","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3888:5:61"}]},{"nodeType":"YulLeave","src":"3911:5:61"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3860:4:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3853:6:61"},"nodeType":"YulFunctionCall","src":"3853:12:61"},"nodeType":"YulIf","src":"3850:76:61"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3962:52:61","statements":[{"nodeType":"YulAssignment","src":"3976:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3985:1:61","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3976:5:61"}]},{"nodeType":"YulLeave","src":"3999:5:61"}]},"nodeType":"YulCase","src":"3955:59:61","value":{"kind":"number","nodeType":"YulLiteral","src":"3960:1:61","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"4030:123:61","statements":[{"body":{"nodeType":"YulBlock","src":"4065:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4067:16:61"},"nodeType":"YulFunctionCall","src":"4067:18:61"},"nodeType":"YulExpressionStatement","src":"4067:18:61"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4050:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"4060:3:61","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4047:2:61"},"nodeType":"YulFunctionCall","src":"4047:17:61"},"nodeType":"YulIf","src":"4044:43:61"},{"nodeType":"YulAssignment","src":"4100:25:61","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4113:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"4123:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4109:3:61"},"nodeType":"YulFunctionCall","src":"4109:16:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4100:5:61"}]},{"nodeType":"YulLeave","src":"4138:5:61"}]},"nodeType":"YulCase","src":"4023:130:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4028:1:61","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"3942:4:61"},"nodeType":"YulSwitch","src":"3935:218:61"},{"body":{"nodeType":"YulBlock","src":"4251:70:61","statements":[{"nodeType":"YulAssignment","src":"4265:28:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4278:4:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"4284:8:61"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"4274:3:61"},"nodeType":"YulFunctionCall","src":"4274:19:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4265:5:61"}]},{"nodeType":"YulLeave","src":"4306:5:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4175:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"4181:2:61","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4172:2:61"},"nodeType":"YulFunctionCall","src":"4172:12:61"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4189:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"4199:2:61","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4186:2:61"},"nodeType":"YulFunctionCall","src":"4186:16:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4168:3:61"},"nodeType":"YulFunctionCall","src":"4168:35:61"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4212:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"4218:3:61","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4209:2:61"},"nodeType":"YulFunctionCall","src":"4209:13:61"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4227:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"4237:2:61","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4224:2:61"},"nodeType":"YulFunctionCall","src":"4224:16:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4205:3:61"},"nodeType":"YulFunctionCall","src":"4205:36:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4165:2:61"},"nodeType":"YulFunctionCall","src":"4165:77:61"},"nodeType":"YulIf","src":"4162:159:61"},{"nodeType":"YulVariableDeclaration","src":"4330:57:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4372:4:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"4378:8:61"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"4353:18:61"},"nodeType":"YulFunctionCall","src":"4353:34:61"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"4334:7:61","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"4343:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4492:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4494:16:61"},"nodeType":"YulFunctionCall","src":"4494:18:61"},"nodeType":"YulExpressionStatement","src":"4494:18:61"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"4402:7:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4415:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"base_1","nodeType":"YulIdentifier","src":"4483:6:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4411:3:61"},"nodeType":"YulFunctionCall","src":"4411:79:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4399:2:61"},"nodeType":"YulFunctionCall","src":"4399:92:61"},"nodeType":"YulIf","src":"4396:118:61"},{"nodeType":"YulAssignment","src":"4523:29:61","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"4536:7:61"},{"name":"base_1","nodeType":"YulIdentifier","src":"4545:6:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4532:3:61"},"nodeType":"YulFunctionCall","src":"4532:20:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4523:5:61"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"3722:4:61","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"3728:8:61","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"3741:5:61","type":""}],"src":"3692:866:61"},{"body":{"nodeType":"YulBlock","src":"4633:61:61","statements":[{"nodeType":"YulAssignment","src":"4643:45:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4673:4:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"4679:8:61"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"4652:20:61"},"nodeType":"YulFunctionCall","src":"4652:36:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4643:5:61"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"4604:4:61","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"4610:8:61","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"4623:5:61","type":""}],"src":"4563:131:61"},{"body":{"nodeType":"YulBlock","src":"4748:76:61","statements":[{"body":{"nodeType":"YulBlock","src":"4770:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4772:16:61"},"nodeType":"YulFunctionCall","src":"4772:18:61"},"nodeType":"YulExpressionStatement","src":"4772:18:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4764:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"4767:1:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4761:2:61"},"nodeType":"YulFunctionCall","src":"4761:8:61"},"nodeType":"YulIf","src":"4758:34:61"},{"nodeType":"YulAssignment","src":"4801:17:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4813:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"4816:1:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4809:3:61"},"nodeType":"YulFunctionCall","src":"4809:9:61"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"4801:4:61"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4730:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"4733:1:61","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4739:4:61","type":""}],"src":"4699:125:61"},{"body":{"nodeType":"YulBlock","src":"4877:80:61","statements":[{"body":{"nodeType":"YulBlock","src":"4904:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4906:16:61"},"nodeType":"YulFunctionCall","src":"4906:18:61"},"nodeType":"YulExpressionStatement","src":"4906:18:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4893:1:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4900:1:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4896:3:61"},"nodeType":"YulFunctionCall","src":"4896:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4890:2:61"},"nodeType":"YulFunctionCall","src":"4890:13:61"},"nodeType":"YulIf","src":"4887:39:61"},{"nodeType":"YulAssignment","src":"4935:16:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4946:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"4949:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4942:3:61"},"nodeType":"YulFunctionCall","src":"4942:9:61"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"4935:3:61"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4860:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"4863:1:61","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"4869:3:61","type":""}],"src":"4829:128:61"}]},"contents":"{\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_bytes32t_uint8t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value1 := value\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_encode_tuple_t_stringliteral_04eba2f101981f474d9dcc87f979092f9f0c776b60211999e448eaa7f12d3e13__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), \"DefaultUpdater: caller is not ad\")\n        mstore(add(headStart, 96), \"min\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24__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), \"ProxyUpdater: value is too large\")\n        tail := add(headStart, 96)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))\n        }\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        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_mul_t_uint8(x, y) -> product\n    {\n        let x_1 := and(x, 0xff)\n        let y_1 := and(y, 0xff)\n        if and(iszero(iszero(x_1)), gt(y_1, div(0xff, x_1))) { panic_error_0x11() }\n        product := mul(x_1, y_1)\n    }\n    function checked_exp_helper(_base, exponent) -> power, base\n    {\n        let power_1 := 1\n        power := power_1\n        base := _base\n        for { } gt(exponent, power_1) { }\n        {\n            if gt(base, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, base)) { panic_error_0x11() }\n            if and(exponent, power_1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(power_1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent)\n        if gt(power_1, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, exponent)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c80631ea9470214610030575b600080fd5b61004361003e36600461027b565b610045565b005b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061009e575033155b61012f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f44656661756c74557064617465723a2063616c6c6572206973206e6f7420616460448201527f6d696e000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61013a83838361013f565b505050565b6020815111156101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f50726f7879557064617465723a2076616c756520697320746f6f206c617267656044820152606401610126565b60006101b68261036c565b905081516020036101c957808455610246565b835482516000906101db9060086103c2565b905060006101ea8660086103e1565b60ff16905060008160016101ff8560026104ec565b61020991906104ff565b901b199050838116600084610220856101006104ff565b61022a91906104ff565b905086811c600061023b8285610516565b8c5550505050505050505b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561029057600080fd5b83359250602084013560ff811681146102a857600080fd5b9150604084013567ffffffffffffffff808211156102c557600080fd5b818601915086601f8301126102d957600080fd5b8135818111156102eb576102eb61024c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156103315761033161024c565b8160405282815289602084870101111561034a57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8051602080830151919081101561038d576000198160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160001904831182151516156103dc576103dc610393565b500290565b600060ff821660ff84168160ff048111821515161561040257610402610393565b029392505050565b600181815b8085111561044557816000190482111561042b5761042b610393565b8085161561043857918102915b93841c939080029061040f565b509250929050565b60008261045c575060016104e6565b81610469575060006104e6565b816001811461047f5760028114610489576104a5565b60019150506104e6565b60ff84111561049a5761049a610393565b50506001821b6104e6565b5060208310610133831016604e8410600b84101617156104c8575081810a6104e6565b6104d2838361040a565b806000190482111561040257610402610393565b92915050565b60006104f8838361044d565b9392505050565b60008282101561051157610511610393565b500390565b6000821982111561052957610529610393565b50019056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1EA94702 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x27B JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x9E JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x12F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x44656661756C74557064617465723A2063616C6C6572206973206E6F74206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D696E0000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x13A DUP4 DUP4 DUP4 PUSH2 0x13F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD GT ISZERO PUSH2 0x1AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F7879557064617465723A2076616C756520697320746F6F206C61726765 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B6 DUP3 PUSH2 0x36C JUMP JUMPDEST SWAP1 POP DUP2 MLOAD PUSH1 0x20 SUB PUSH2 0x1C9 JUMPI DUP1 DUP5 SSTORE PUSH2 0x246 JUMP JUMPDEST DUP4 SLOAD DUP3 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x1DB SWAP1 PUSH1 0x8 PUSH2 0x3C2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1EA DUP7 PUSH1 0x8 PUSH2 0x3E1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH2 0x1FF DUP6 PUSH1 0x2 PUSH2 0x4EC JUMP JUMPDEST PUSH2 0x209 SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST SWAP1 SHL NOT SWAP1 POP DUP4 DUP2 AND PUSH1 0x0 DUP5 PUSH2 0x220 DUP6 PUSH2 0x100 PUSH2 0x4FF JUMP JUMPDEST PUSH2 0x22A SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST SWAP1 POP DUP7 DUP2 SHR PUSH1 0x0 PUSH2 0x23B DUP3 DUP6 PUSH2 0x516 JUMP JUMPDEST DUP13 SSTORE POP POP POP POP POP POP POP POP JUMPDEST POP POP POP 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 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2EB JUMPI PUSH2 0x2EB PUSH2 0x24C 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 0x331 JUMPI PUSH2 0x331 PUSH2 0x24C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x34A 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 DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x38D JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x393 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP2 PUSH1 0xFF DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x402 JUMPI PUSH2 0x402 PUSH2 0x393 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x445 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x42B JUMPI PUSH2 0x42B PUSH2 0x393 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x438 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x40F JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x45C JUMPI POP PUSH1 0x1 PUSH2 0x4E6 JUMP JUMPDEST DUP2 PUSH2 0x469 JUMPI POP PUSH1 0x0 PUSH2 0x4E6 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x47F JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x489 JUMPI PUSH2 0x4A5 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x4E6 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x49A JUMPI PUSH2 0x49A PUSH2 0x393 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x4E6 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x4C8 JUMPI POP DUP2 DUP2 EXP PUSH2 0x4E6 JUMP JUMPDEST PUSH2 0x4D2 DUP4 DUP4 PUSH2 0x40A JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x402 JUMPI PUSH2 0x402 PUSH2 0x393 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F8 DUP4 DUP4 PUSH2 0x44D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x511 JUMPI PUSH2 0x511 PUSH2 0x393 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x529 JUMPI PUSH2 0x529 PUSH2 0x393 JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"277:1365:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:150;;;;;;:::i;:::-;;:::i;:::-;;;1592:9;1586:16;982:25;;:10;:25;;;:53;;;-1:-1:-1;1011:10:56;:24;982:53;961:135;;;;;;;1615:2:61;961:135:56;;;1597:21:61;1654:2;1634:18;;;1627:30;1693:34;1673:18;;;1666:62;1764:5;1744:18;;;1737:33;1787:19;;961:135:56;;;;;;;;;1307:39:::1;1324:4;1330:7;1339:6;1307:16;:39::i;:::-;1203:150:::0;;;:::o;2283:2153:58:-;2403:2;2386:6;:13;:19;;2378:64;;;;;;;2019:2:61;2378:64:58;;;2001:21:61;;;2038:18;;;2031:30;2097:34;2077:18;;;2070:62;2149:18;;2378:64:58;1817:356:61;2378:64:58;2453:20;2476:15;2484:6;2476:15;:::i;:::-;2453:38;;2639:6;:13;2656:2;2639:19;2635:1795;;2714:12;2708:4;2701:26;2635:1795;;;2891:11;;3042:13;;2824:15;;3042:17;;3058:1;3042:17;:::i;:::-;3016:43;-1:-1:-1;3073:18:58;3094:11;:7;3104:1;3094:11;:::i;:::-;3073:32;;;-1:-1:-1;3520:12:58;3073:32;3563:1;3538:22;3544:15;3538:1;:22;:::i;:::-;:26;;;;:::i;:::-;3537:42;;3535:45;;-1:-1:-1;3689:23:58;;;3665:21;3912:15;3893:16;3899:10;3893:3;:16;:::i;:::-;:34;;;;:::i;:::-;3868:59;-1:-1:-1;4058:30:58;;;4029:25;4239:51;4058:30;4247:13;4239:51;:::i;:::-;4386:20;;-1:-1:-1;;;;;;;;2635:1795:58;2368:2068;2283:2153;;;:::o;14:184:61:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1205;287:6;295;303;356:2;344:9;335:7;331:23;327:32;324:52;;;372:1;369;362:12;324:52;408:9;395:23;385:33;;468:2;457:9;453:18;440:32;512:4;505:5;501:16;494:5;491:27;481:55;;532:1;529;522:12;481:55;555:5;-1:-1:-1;611:2:61;596:18;;583:32;634:18;664:14;;;661:34;;;691:1;688;681:12;661:34;729:6;718:9;714:22;704:32;;774:7;767:4;763:2;759:13;755:27;745:55;;796:1;793;786:12;745:55;832:2;819:16;854:2;850;847:10;844:36;;;860:18;;:::i;:::-;994:2;988:9;1056:4;1048:13;;899:66;1044:22;;;1068:2;1040:31;1036:40;1024:53;;;1092:18;;;1112:22;;;1089:46;1086:72;;;1138:18;;:::i;:::-;1178:10;1174:2;1167:22;1213:2;1205:6;1198:18;1253:7;1248:2;1243;1239;1235:11;1231:20;1228:33;1225:53;;;1274:1;1271;1264:12;1225:53;1330:2;1325;1321;1317:11;1312:2;1304:6;1300:15;1287:46;1375:1;1370:2;1365;1357:6;1353:15;1349:24;1342:35;1396:6;1386:16;;;;;;;203:1205;;;;;:::o;2178:357::-;2296:12;;2343:4;2332:16;;;2326:23;;2296:12;2361:16;;2358:171;;;-1:-1:-1;;2441:6:61;2435:4;2431:17;2428:1;2424:25;2420:98;2413:5;2409:110;2400:119;;2358:171;;2178:357;;;:::o;2540:184::-;2592:77;2589:1;2582:88;2689:4;2686:1;2679:15;2713:4;2710:1;2703:15;2729:228;2769:7;2895:1;-1:-1:-1;;2823:74:61;2820:1;2817:81;2812:1;2805:9;2798:17;2794:105;2791:131;;;2902:18;;:::i;:::-;-1:-1:-1;2942:9:61;;2729:228::o;2962:238::-;3000:7;3040:4;3037:1;3033:12;3072:4;3069:1;3065:12;3132:3;3126:4;3122:14;3117:3;3114:23;3107:3;3100:11;3093:19;3089:49;3086:75;;;3141:18;;:::i;:::-;3181:13;;2962:238;-1:-1:-1;;;2962:238:61:o;3205:482::-;3294:1;3337:5;3294:1;3351:330;3372:7;3362:8;3359:21;3351:330;;;3491:4;-1:-1:-1;;3419:77:61;3413:4;3410:87;3407:113;;;3500:18;;:::i;:::-;3550:7;3540:8;3536:22;3533:55;;;3570:16;;;;3533:55;3649:22;;;;3609:15;;;;3351:330;;;3355:3;3205:482;;;;;:::o;3692:866::-;3741:5;3771:8;3761:80;;-1:-1:-1;3812:1:61;3826:5;;3761:80;3860:4;3850:76;;-1:-1:-1;3897:1:61;3911:5;;3850:76;3942:4;3960:1;3955:59;;;;4028:1;4023:130;;;;3935:218;;3955:59;3985:1;3976:10;;3999:5;;;4023:130;4060:3;4050:8;4047:17;4044:43;;;4067:18;;:::i;:::-;-1:-1:-1;;4123:1:61;4109:16;;4138:5;;3935:218;;4237:2;4227:8;4224:16;4218:3;4212:4;4209:13;4205:36;4199:2;4189:8;4186:16;4181:2;4175:4;4172:12;4168:35;4165:77;4162:159;;;-1:-1:-1;4274:19:61;;;4306:5;;4162:159;4353:34;4378:8;4372:4;4353:34;:::i;:::-;4483:6;-1:-1:-1;;4411:79:61;4402:7;4399:92;4396:118;;;4494:18;;:::i;3692:866::-;;;;;:::o;4563:131::-;4623:5;4652:36;4679:8;4673:4;4652:36;:::i;:::-;4643:45;4563:131;-1:-1:-1;;;4563:131:61:o;4699:125::-;4739:4;4767:1;4764;4761:8;4758:34;;;4772:18;;:::i;:::-;-1:-1:-1;4809:9:61;;4699:125::o;4829:128::-;4869:3;4900:1;4896:6;4893:1;4890:13;4887:39;;;4906:18;;:::i;:::-;-1:-1:-1;4942:9:61;;4829:128::o"},"methodIdentifiers":{"setStorage(bytes32,uint8,bytes)":"1ea94702"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"setStorage(bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] bytes (inclusive).\"}}},\"title\":\"DefaultUpdater\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setStorage(bytes32,uint8,bytes)\":{\"notice\":\"Only callable by the owner.\"}},\"notice\":\"Proxy updater that works with Transparent proxies, including the default Proxy contracts used in the ChugSplash system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/updaters/DefaultUpdater.sol\":\"DefaultUpdater\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]},\"contracts/updaters/DefaultUpdater.sol\":{\"keccak256\":\"0x11292af1b93865f35039fc90bd2270d3925be12cb04a582ac70000106a3981c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ccb1f486f8b82a90c50eb6c7e4cdf6c04c83d0c355980dad291835a1edc495f\",\"dweb:/ipfs/QmYh9uevUokVRZnnsJxMCG8pqdKNMM1JQtvWKx1aPS3iza\"]},\"contracts/updaters/ProxyUpdater.sol\":{\"keccak256\":\"0x7fd8c8b7f1f5eb437bc7f6217a6385c60227c8af7a7c8ac3bd9f69824f232405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1527f8ba378dd9134bac0c537e2b8c3a24acd0bb43c654780b5925a2c949f748\",\"dweb:/ipfs/QmZC5KLDySGoZxHf2uPbb5MEWh66hp7DJJjCLzG2PZBD5Y\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/updaters/OZUUPSUpdater.sol":{"OZUUPSUpdater":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"complete","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initiate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a06040523060805234801561001457600080fd5b506080516109b661003060003960006102ce01526109b66000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806352d1902d1161005057806352d1902d1461009457806366aa56c5146100ae57806393af0292146100b657600080fd5b80631ea947021461006c5780633659cfe614610081575b600080fd5b61007f61007a3660046106c0565b6100c9565b005b61007f61008f3660046107b1565b6101c3565b61009c6102b4565b60405190815260200160405180910390f35b61007f6103a0565b61007f6100c43660046107b1565b61040e565b7fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610122575033155b6101b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d60448201527f696e00000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101be83838361051c565b505050565b7fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061021c575033155b6102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d60448201527f696e00000000000000000000000000000000000000000000000000000000000060648201526084016101aa565b6102b181610629565b50565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4f5a55555053557064617465723a206d757374206e6f742062652063616c6c6560448201527f64207468726f7567682064656c656761746563616c6c0000000000000000000060648201526084016101aa565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b336103c97fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955490565b73ffffffffffffffffffffffffffffffffffffffff161461040c5761040c337fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c3499555565b565b7fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610467575033155b6104f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d60448201527f696e00000000000000000000000000000000000000000000000000000000000060648201526084016101aa565b6102a860007fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c3499555565b602081511115610588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f50726f7879557064617465723a2076616c756520697320746f6f206c6172676560448201526064016101aa565b6000610593826107ee565b905081516020036105a657808455610623565b835482516000906105b8906008610844565b905060006105c7866008610863565b60ff16905060008160016105dc85600261096e565b6105e6919061097a565b901b1990508381166000846105fd8561010061097a565b610607919061097a565b905086811c60006106188285610991565b8c5550505050505050505b50505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156106d557600080fd5b83359250602084013560ff811681146106ed57600080fd5b9150604084013567ffffffffffffffff8082111561070a57600080fd5b818601915086601f83011261071e57600080fd5b81358181111561073057610730610691565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561077657610776610691565b8160405282815289602084870101111561078f57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156107c357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107e757600080fd5b9392505050565b8051602080830151919081101561080f576000198160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600081600019048311821515161561085e5761085e610815565b500290565b600060ff821660ff84168160ff048111821515161561088457610884610815565b029392505050565b600181815b808511156108c75781600019048211156108ad576108ad610815565b808516156108ba57918102915b93841c9390800290610891565b509250929050565b6000826108de57506001610968565b816108eb57506000610968565b8160018114610901576002811461090b57610927565b6001915050610968565b60ff84111561091c5761091c610815565b50506001821b610968565b5060208310610133831016604e8410600b841016171561094a575081810a610968565b610954838361088c565b806000190482111561088457610884610815565b92915050565b60006107e783836108cf565b60008282101561098c5761098c610815565b500390565b600082198211156109a4576109a4610815565b50019056fea164736f6c634300080f000a","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE ADDRESS PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x9B6 PUSH2 0x30 PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x2CE ADD MSTORE PUSH2 0x9B6 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x66AA56C5 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x93AF0292 EQ PUSH2 0xB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1EA94702 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x6C0 JUMP JUMPDEST PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x1C3 JUMP JUMPDEST PUSH2 0x9C PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0x3A0 JUMP JUMPDEST PUSH2 0x7F PUSH2 0xC4 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x122 JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x1B3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A2063616C6C6572206973206E6F742061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BE DUP4 DUP4 DUP4 PUSH2 0x51C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x21C JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x2A8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A2063616C6C6572206973206E6F742061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x2B1 DUP2 PUSH2 0x629 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A206D757374206E6F742062652063616C6C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x64207468726F7567682064656C656761746563616C6C00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1AA JUMP JUMPDEST POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SWAP1 JUMP JUMPDEST CALLER PUSH2 0x3C9 PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x40C JUMPI PUSH2 0x40C CALLER PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SSTORE JUMP JUMPDEST JUMP JUMPDEST PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x467 JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A2063616C6C6572206973206E6F742061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x0 PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD GT ISZERO PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F7879557064617465723A2076616C756520697320746F6F206C61726765 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x593 DUP3 PUSH2 0x7EE JUMP JUMPDEST SWAP1 POP DUP2 MLOAD PUSH1 0x20 SUB PUSH2 0x5A6 JUMPI DUP1 DUP5 SSTORE PUSH2 0x623 JUMP JUMPDEST DUP4 SLOAD DUP3 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x5B8 SWAP1 PUSH1 0x8 PUSH2 0x844 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5C7 DUP7 PUSH1 0x8 PUSH2 0x863 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH2 0x5DC DUP6 PUSH1 0x2 PUSH2 0x96E JUMP JUMPDEST PUSH2 0x5E6 SWAP2 SWAP1 PUSH2 0x97A JUMP JUMPDEST SWAP1 SHL NOT SWAP1 POP DUP4 DUP2 AND PUSH1 0x0 DUP5 PUSH2 0x5FD DUP6 PUSH2 0x100 PUSH2 0x97A JUMP JUMPDEST PUSH2 0x607 SWAP2 SWAP1 PUSH2 0x97A JUMP JUMPDEST SWAP1 POP DUP7 DUP2 SHR PUSH1 0x0 PUSH2 0x618 DUP3 DUP6 PUSH2 0x991 JUMP JUMPDEST DUP13 SSTORE POP POP POP POP POP POP POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 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 0x6D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x6ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x730 JUMPI PUSH2 0x730 PUSH2 0x691 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 0x776 JUMPI PUSH2 0x776 PUSH2 0x691 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x78F 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 0x7C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x7E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x80F JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x85E JUMPI PUSH2 0x85E PUSH2 0x815 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP2 PUSH1 0xFF DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x884 JUMPI PUSH2 0x884 PUSH2 0x815 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x8C7 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x8AD JUMPI PUSH2 0x8AD PUSH2 0x815 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x8BA JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x891 JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x8DE JUMPI POP PUSH1 0x1 PUSH2 0x968 JUMP JUMPDEST DUP2 PUSH2 0x8EB JUMPI POP PUSH1 0x0 PUSH2 0x968 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x901 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x90B JUMPI PUSH2 0x927 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x968 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x91C JUMPI PUSH2 0x91C PUSH2 0x815 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x94A JUMPI POP DUP2 DUP2 EXP PUSH2 0x968 JUMP JUMPDEST PUSH2 0x954 DUP4 DUP4 PUSH2 0x88C JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x884 JUMPI PUSH2 0x884 PUSH2 0x815 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7E7 DUP4 DUP4 PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x98C JUMPI PUSH2 0x98C PUSH2 0x815 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x9A4 JUMPI PUSH2 0x9A4 PUSH2 0x815 JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"584:4990:57:-:0;;;1443:4;1393:55;;584:4990;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_getChugSplashAdmin_10150":{"entryPoint":null,"id":10150,"parameterSlots":0,"returnSlots":1},"@_setChugSplashAdmin_10137":{"entryPoint":null,"id":10137,"parameterSlots":1,"returnSlots":0},"@_setImplementation_10129":{"entryPoint":1577,"id":10129,"parameterSlots":1,"returnSlots":0},"@complete_10084":{"entryPoint":1038,"id":10084,"parameterSlots":1,"returnSlots":0},"@initiate_10064":{"entryPoint":928,"id":10064,"parameterSlots":0,"returnSlots":0},"@proxiableUUID_10095":{"entryPoint":692,"id":10095,"parameterSlots":0,"returnSlots":1},"@setStorage_10117":{"entryPoint":201,"id":10117,"parameterSlots":3,"returnSlots":0},"@setStorage_10260":{"entryPoint":1308,"id":10260,"parameterSlots":3,"returnSlots":0},"@upgradeTo_10047":{"entryPoint":451,"id":10047,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":1969,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_uint8t_bytes_memory_ptr":{"entryPoint":1728,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c27596859fcb6ead2837c73c7dd7816b298d256d48959cdfafbf2d8dcd5da49f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df13bd9d8a33902bf0e6a91ac16a6f6fe3944749e39401c7e12401be7ab8953e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2449,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2188,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":2414,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2255,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2116,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint8":{"entryPoint":2147,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2426,"id":null,"parameterSlots":2,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":2030,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2069,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1681,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5877:61","statements":[{"nodeType":"YulBlock","src":"6:3:61","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"66:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:61"},"nodeType":"YulFunctionCall","src":"56:88:61"},"nodeType":"YulExpressionStatement","src":"56:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"163:4:61","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"153:6:61"},"nodeType":"YulFunctionCall","src":"153:15:61"},"nodeType":"YulExpressionStatement","src":"153:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"184:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"187:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"177:6:61"},"nodeType":"YulFunctionCall","src":"177:15:61"},"nodeType":"YulExpressionStatement","src":"177:15:61"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:184:61"},{"body":{"nodeType":"YulBlock","src":"314:1094:61","statements":[{"body":{"nodeType":"YulBlock","src":"360:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"369:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"372:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"362:6:61"},"nodeType":"YulFunctionCall","src":"362:12:61"},"nodeType":"YulExpressionStatement","src":"362:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"335:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"344:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"331:3:61"},"nodeType":"YulFunctionCall","src":"331:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"356:2:61","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"327:3:61"},"nodeType":"YulFunctionCall","src":"327:32:61"},"nodeType":"YulIf","src":"324:52:61"},{"nodeType":"YulAssignment","src":"385:33:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"408:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"395:12:61"},"nodeType":"YulFunctionCall","src":"395:23:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"385:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"427:45:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"468:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"453:3:61"},"nodeType":"YulFunctionCall","src":"453:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"440:12:61"},"nodeType":"YulFunctionCall","src":"440:32:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"431:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"520:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"529:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"532:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"522:6:61"},"nodeType":"YulFunctionCall","src":"522:12:61"},"nodeType":"YulExpressionStatement","src":"522:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"494:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"505:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"512:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"501:3:61"},"nodeType":"YulFunctionCall","src":"501:16:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"491:2:61"},"nodeType":"YulFunctionCall","src":"491:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"484:6:61"},"nodeType":"YulFunctionCall","src":"484:35:61"},"nodeType":"YulIf","src":"481:55:61"},{"nodeType":"YulAssignment","src":"545:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"555:5:61"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"545:6:61"}]},{"nodeType":"YulVariableDeclaration","src":"569:46:61","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"600:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"611:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"596:3:61"},"nodeType":"YulFunctionCall","src":"596:18:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"583:12:61"},"nodeType":"YulFunctionCall","src":"583:32:61"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"573:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"624:28:61","value":{"kind":"number","nodeType":"YulLiteral","src":"634:18:61","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"628:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"679:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"688:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"691:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"681:6:61"},"nodeType":"YulFunctionCall","src":"681:12:61"},"nodeType":"YulExpressionStatement","src":"681:12:61"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"667:6:61"},{"name":"_1","nodeType":"YulIdentifier","src":"675:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"664:2:61"},"nodeType":"YulFunctionCall","src":"664:14:61"},"nodeType":"YulIf","src":"661:34:61"},{"nodeType":"YulVariableDeclaration","src":"704:32:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"718:9:61"},{"name":"offset","nodeType":"YulIdentifier","src":"729:6:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"714:3:61"},"nodeType":"YulFunctionCall","src":"714:22:61"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"708:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"784:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"793:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"796:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"786:6:61"},"nodeType":"YulFunctionCall","src":"786:12:61"},"nodeType":"YulExpressionStatement","src":"786:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"763:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"767:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"759:3:61"},"nodeType":"YulFunctionCall","src":"759:13:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"774:7:61"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"755:3:61"},"nodeType":"YulFunctionCall","src":"755:27:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"748:6:61"},"nodeType":"YulFunctionCall","src":"748:35:61"},"nodeType":"YulIf","src":"745:55:61"},{"nodeType":"YulVariableDeclaration","src":"809:26:61","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"832:2:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"819:12:61"},"nodeType":"YulFunctionCall","src":"819:16:61"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"813:2:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"858:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"860:16:61"},"nodeType":"YulFunctionCall","src":"860:18:61"},"nodeType":"YulExpressionStatement","src":"860:18:61"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"850:2:61"},{"name":"_1","nodeType":"YulIdentifier","src":"854:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"847:2:61"},"nodeType":"YulFunctionCall","src":"847:10:61"},"nodeType":"YulIf","src":"844:36:61"},{"nodeType":"YulVariableDeclaration","src":"889:76:61","value":{"kind":"number","nodeType":"YulLiteral","src":"899:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"893:2:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"974:23:61","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"994:2:61","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"988:5:61"},"nodeType":"YulFunctionCall","src":"988:9:61"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"978:6:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1006:71:61","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1028:6:61"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1052:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1056:4:61","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1048:3:61"},"nodeType":"YulFunctionCall","src":"1048:13:61"},{"name":"_4","nodeType":"YulIdentifier","src":"1063:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1044:3:61"},"nodeType":"YulFunctionCall","src":"1044:22:61"},{"kind":"number","nodeType":"YulLiteral","src":"1068:2:61","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:61"},"nodeType":"YulFunctionCall","src":"1040:31:61"},{"name":"_4","nodeType":"YulIdentifier","src":"1073:2:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1036:3:61"},"nodeType":"YulFunctionCall","src":"1036:40:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1024:3:61"},"nodeType":"YulFunctionCall","src":"1024:53:61"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1010:10:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1136:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1138:16:61"},"nodeType":"YulFunctionCall","src":"1138:18:61"},"nodeType":"YulExpressionStatement","src":"1138:18:61"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1095:10:61"},{"name":"_1","nodeType":"YulIdentifier","src":"1107:2:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1092:2:61"},"nodeType":"YulFunctionCall","src":"1092:18:61"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1115:10:61"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1127:6:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:61"},"nodeType":"YulFunctionCall","src":"1112:22:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1089:2:61"},"nodeType":"YulFunctionCall","src":"1089:46:61"},"nodeType":"YulIf","src":"1086:72:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1174:2:61","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1178:10:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1167:6:61"},"nodeType":"YulFunctionCall","src":"1167:22:61"},"nodeType":"YulExpressionStatement","src":"1167:22:61"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1205:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1213:2:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1198:6:61"},"nodeType":"YulFunctionCall","src":"1198:18:61"},"nodeType":"YulExpressionStatement","src":"1198:18:61"},{"body":{"nodeType":"YulBlock","src":"1262:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1271:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1274:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1264:6:61"},"nodeType":"YulFunctionCall","src":"1264:12:61"},"nodeType":"YulExpressionStatement","src":"1264:12:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1239:2:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1243:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1235:3:61"},"nodeType":"YulFunctionCall","src":"1235:11:61"},{"kind":"number","nodeType":"YulLiteral","src":"1248:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1231:3:61"},"nodeType":"YulFunctionCall","src":"1231:20:61"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1253:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1228:2:61"},"nodeType":"YulFunctionCall","src":"1228:33:61"},"nodeType":"YulIf","src":"1225:53:61"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1304:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"1312:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:61"},"nodeType":"YulFunctionCall","src":"1300:15:61"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1321:2:61"},{"kind":"number","nodeType":"YulLiteral","src":"1325:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1317:3:61"},"nodeType":"YulFunctionCall","src":"1317:11:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1330:2:61"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1287:12:61"},"nodeType":"YulFunctionCall","src":"1287:46:61"},"nodeType":"YulExpressionStatement","src":"1287:46:61"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1357:6:61"},{"name":"_3","nodeType":"YulIdentifier","src":"1365:2:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1353:3:61"},"nodeType":"YulFunctionCall","src":"1353:15:61"},{"kind":"number","nodeType":"YulLiteral","src":"1370:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1349:3:61"},"nodeType":"YulFunctionCall","src":"1349:24:61"},{"kind":"number","nodeType":"YulLiteral","src":"1375:1:61","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:61"},"nodeType":"YulFunctionCall","src":"1342:35:61"},"nodeType":"YulExpressionStatement","src":"1342:35:61"},{"nodeType":"YulAssignment","src":"1386:16:61","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1396:6:61"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1386:6:61"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint8t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"264:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"275:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"287:6:61","type":""},{"name":"value1","nodeType":"YulTypedName","src":"295:6:61","type":""},{"name":"value2","nodeType":"YulTypedName","src":"303:6:61","type":""}],"src":"203:1205:61"},{"body":{"nodeType":"YulBlock","src":"1483:239:61","statements":[{"body":{"nodeType":"YulBlock","src":"1529:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1538:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1541:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1531:6:61"},"nodeType":"YulFunctionCall","src":"1531:12:61"},"nodeType":"YulExpressionStatement","src":"1531:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1504:7:61"},{"name":"headStart","nodeType":"YulIdentifier","src":"1513:9:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1500:3:61"},"nodeType":"YulFunctionCall","src":"1500:23:61"},{"kind":"number","nodeType":"YulLiteral","src":"1525:2:61","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1496:3:61"},"nodeType":"YulFunctionCall","src":"1496:32:61"},"nodeType":"YulIf","src":"1493:52:61"},{"nodeType":"YulVariableDeclaration","src":"1554:36:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1580:9:61"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1567:12:61"},"nodeType":"YulFunctionCall","src":"1567:23:61"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1558:5:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"1676:16:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1685:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1688:1:61","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1678:6:61"},"nodeType":"YulFunctionCall","src":"1678:12:61"},"nodeType":"YulExpressionStatement","src":"1678:12:61"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1612:5:61"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1623:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"1630:42:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1619:3:61"},"nodeType":"YulFunctionCall","src":"1619:54:61"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1609:2:61"},"nodeType":"YulFunctionCall","src":"1609:65:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1602:6:61"},"nodeType":"YulFunctionCall","src":"1602:73:61"},"nodeType":"YulIf","src":"1599:93:61"},{"nodeType":"YulAssignment","src":"1701:15:61","value":{"name":"value","nodeType":"YulIdentifier","src":"1711:5:61"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1701:6:61"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1449:9:61","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1460:7:61","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1472:6:61","type":""}],"src":"1413:309:61"},{"body":{"nodeType":"YulBlock","src":"1828:76:61","statements":[{"nodeType":"YulAssignment","src":"1838:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1850:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"1861:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1846:3:61"},"nodeType":"YulFunctionCall","src":"1846:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1838:4:61"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1880:9:61"},{"name":"value0","nodeType":"YulIdentifier","src":"1891:6:61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1873:6:61"},"nodeType":"YulFunctionCall","src":"1873:25:61"},"nodeType":"YulExpressionStatement","src":"1873:25:61"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1797:9:61","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1808:6:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1819:4:61","type":""}],"src":"1727:177:61"},{"body":{"nodeType":"YulBlock","src":"2083:224:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2100:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2111:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2093:6:61"},"nodeType":"YulFunctionCall","src":"2093:21:61"},"nodeType":"YulExpressionStatement","src":"2093:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2134:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2145:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2130:3:61"},"nodeType":"YulFunctionCall","src":"2130:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2150:2:61","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2123:6:61"},"nodeType":"YulFunctionCall","src":"2123:30:61"},"nodeType":"YulExpressionStatement","src":"2123:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2173:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2184:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2169:3:61"},"nodeType":"YulFunctionCall","src":"2169:18:61"},{"hexValue":"4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d","kind":"string","nodeType":"YulLiteral","src":"2189:34:61","type":"","value":"OZUUPSUpdater: caller is not adm"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2162:6:61"},"nodeType":"YulFunctionCall","src":"2162:62:61"},"nodeType":"YulExpressionStatement","src":"2162:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2244:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2255:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2240:3:61"},"nodeType":"YulFunctionCall","src":"2240:18:61"},{"hexValue":"696e","kind":"string","nodeType":"YulLiteral","src":"2260:4:61","type":"","value":"in"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2233:6:61"},"nodeType":"YulFunctionCall","src":"2233:32:61"},"nodeType":"YulExpressionStatement","src":"2233:32:61"},{"nodeType":"YulAssignment","src":"2274:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2286:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2297:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2282:3:61"},"nodeType":"YulFunctionCall","src":"2282:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2274:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_df13bd9d8a33902bf0e6a91ac16a6f6fe3944749e39401c7e12401be7ab8953e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2060:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2074:4:61","type":""}],"src":"1909:398:61"},{"body":{"nodeType":"YulBlock","src":"2486:244:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2503:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2514:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2496:6:61"},"nodeType":"YulFunctionCall","src":"2496:21:61"},"nodeType":"YulExpressionStatement","src":"2496:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2537:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2548:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2533:3:61"},"nodeType":"YulFunctionCall","src":"2533:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2553:2:61","type":"","value":"54"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2526:6:61"},"nodeType":"YulFunctionCall","src":"2526:30:61"},"nodeType":"YulExpressionStatement","src":"2526:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2576:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2587:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2572:3:61"},"nodeType":"YulFunctionCall","src":"2572:18:61"},{"hexValue":"4f5a55555053557064617465723a206d757374206e6f742062652063616c6c65","kind":"string","nodeType":"YulLiteral","src":"2592:34:61","type":"","value":"OZUUPSUpdater: must not be calle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2565:6:61"},"nodeType":"YulFunctionCall","src":"2565:62:61"},"nodeType":"YulExpressionStatement","src":"2565:62:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2647:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2658:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2643:3:61"},"nodeType":"YulFunctionCall","src":"2643:18:61"},{"hexValue":"64207468726f7567682064656c656761746563616c6c","kind":"string","nodeType":"YulLiteral","src":"2663:24:61","type":"","value":"d through delegatecall"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2636:6:61"},"nodeType":"YulFunctionCall","src":"2636:52:61"},"nodeType":"YulExpressionStatement","src":"2636:52:61"},{"nodeType":"YulAssignment","src":"2697:27:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2720:3:61","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:61"},"nodeType":"YulFunctionCall","src":"2705:19:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2697:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_c27596859fcb6ead2837c73c7dd7816b298d256d48959cdfafbf2d8dcd5da49f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2463:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2477:4:61","type":""}],"src":"2312:418:61"},{"body":{"nodeType":"YulBlock","src":"2909:182:61","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2926:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2937:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2919:6:61"},"nodeType":"YulFunctionCall","src":"2919:21:61"},"nodeType":"YulExpressionStatement","src":"2919:21:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2960:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"2971:2:61","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2956:3:61"},"nodeType":"YulFunctionCall","src":"2956:18:61"},{"kind":"number","nodeType":"YulLiteral","src":"2976:2:61","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2949:6:61"},"nodeType":"YulFunctionCall","src":"2949:30:61"},"nodeType":"YulExpressionStatement","src":"2949:30:61"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2999:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3010:2:61","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2995:3:61"},"nodeType":"YulFunctionCall","src":"2995:18:61"},{"hexValue":"50726f7879557064617465723a2076616c756520697320746f6f206c61726765","kind":"string","nodeType":"YulLiteral","src":"3015:34:61","type":"","value":"ProxyUpdater: value is too large"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2988:6:61"},"nodeType":"YulFunctionCall","src":"2988:62:61"},"nodeType":"YulExpressionStatement","src":"2988:62:61"},{"nodeType":"YulAssignment","src":"3059:26:61","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3071:9:61"},{"kind":"number","nodeType":"YulLiteral","src":"3082:2:61","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3067:3:61"},"nodeType":"YulFunctionCall","src":"3067:18:61"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3059:4:61"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2886:9:61","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2900:4:61","type":""}],"src":"2735:356:61"},{"body":{"nodeType":"YulBlock","src":"3190:263:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3200:26:61","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3220:5:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3214:5:61"},"nodeType":"YulFunctionCall","src":"3214:12:61"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3204:6:61","type":""}]},{"nodeType":"YulAssignment","src":"3235:32:61","value":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3254:5:61"},{"kind":"number","nodeType":"YulLiteral","src":"3261:4:61","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3250:3:61"},"nodeType":"YulFunctionCall","src":"3250:16:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3244:5:61"},"nodeType":"YulFunctionCall","src":"3244:23:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3235:5:61"}]},{"body":{"nodeType":"YulBlock","src":"3304:143:61","statements":[{"nodeType":"YulAssignment","src":"3318:119:61","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3331:5:61"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3346:1:61","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3353:4:61","type":"","value":"0x20"},{"name":"length","nodeType":"YulIdentifier","src":"3359:6:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3349:3:61"},"nodeType":"YulFunctionCall","src":"3349:17:61"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3342:3:61"},"nodeType":"YulFunctionCall","src":"3342:25:61"},{"kind":"number","nodeType":"YulLiteral","src":"3369:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3338:3:61"},"nodeType":"YulFunctionCall","src":"3338:98:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3327:3:61"},"nodeType":"YulFunctionCall","src":"3327:110:61"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3318:5:61"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3282:6:61"},{"kind":"number","nodeType":"YulLiteral","src":"3290:4:61","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3279:2:61"},"nodeType":"YulFunctionCall","src":"3279:16:61"},"nodeType":"YulIf","src":"3276:171:61"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"3170:5:61","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3180:5:61","type":""}],"src":"3096:357:61"},{"body":{"nodeType":"YulBlock","src":"3490:152:61","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3507:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3510:77:61","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3500:6:61"},"nodeType":"YulFunctionCall","src":"3500:88:61"},"nodeType":"YulExpressionStatement","src":"3500:88:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3604:1:61","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3607:4:61","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3597:6:61"},"nodeType":"YulFunctionCall","src":"3597:15:61"},"nodeType":"YulExpressionStatement","src":"3597:15:61"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3628:1:61","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3631:4:61","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3621:6:61"},"nodeType":"YulFunctionCall","src":"3621:15:61"},"nodeType":"YulExpressionStatement","src":"3621:15:61"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3458:184:61"},{"body":{"nodeType":"YulBlock","src":"3699:176:61","statements":[{"body":{"nodeType":"YulBlock","src":"3818:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3820:16:61"},"nodeType":"YulFunctionCall","src":"3820:18:61"},"nodeType":"YulExpressionStatement","src":"3820:18:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3730:1:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3723:6:61"},"nodeType":"YulFunctionCall","src":"3723:9:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3716:6:61"},"nodeType":"YulFunctionCall","src":"3716:17:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3738:1:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3745:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"3813:1:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3741:3:61"},"nodeType":"YulFunctionCall","src":"3741:74:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3735:2:61"},"nodeType":"YulFunctionCall","src":"3735:81:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3712:3:61"},"nodeType":"YulFunctionCall","src":"3712:105:61"},"nodeType":"YulIf","src":"3709:131:61"},{"nodeType":"YulAssignment","src":"3849:20:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3864:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"3867:1:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3860:3:61"},"nodeType":"YulFunctionCall","src":"3860:9:61"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"3849:7:61"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3678:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"3681:1:61","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"3687:7:61","type":""}],"src":"3647:228:61"},{"body":{"nodeType":"YulBlock","src":"3930:188:61","statements":[{"nodeType":"YulVariableDeclaration","src":"3940:23:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3955:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3958:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3951:3:61"},"nodeType":"YulFunctionCall","src":"3951:12:61"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"3944:3:61","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3972:23:61","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3987:1:61"},{"kind":"number","nodeType":"YulLiteral","src":"3990:4:61","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3983:3:61"},"nodeType":"YulFunctionCall","src":"3983:12:61"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"3976:3:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"4057:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4059:16:61"},"nodeType":"YulFunctionCall","src":"4059:18:61"},"nodeType":"YulExpressionStatement","src":"4059:18:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"4025:3:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4018:6:61"},"nodeType":"YulFunctionCall","src":"4018:11:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4011:6:61"},"nodeType":"YulFunctionCall","src":"4011:19:61"},{"arguments":[{"name":"y_1","nodeType":"YulIdentifier","src":"4035:3:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4044:4:61","type":"","value":"0xff"},{"name":"x_1","nodeType":"YulIdentifier","src":"4050:3:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4040:3:61"},"nodeType":"YulFunctionCall","src":"4040:14:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4032:2:61"},"nodeType":"YulFunctionCall","src":"4032:23:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4007:3:61"},"nodeType":"YulFunctionCall","src":"4007:49:61"},"nodeType":"YulIf","src":"4004:75:61"},{"nodeType":"YulAssignment","src":"4088:24:61","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"4103:3:61"},{"name":"y_1","nodeType":"YulIdentifier","src":"4108:3:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4099:3:61"},"nodeType":"YulFunctionCall","src":"4099:13:61"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4088:7:61"}]}]},"name":"checked_mul_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3909:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"3912:1:61","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"3918:7:61","type":""}],"src":"3880:238:61"},{"body":{"nodeType":"YulBlock","src":"4187:418:61","statements":[{"nodeType":"YulVariableDeclaration","src":"4197:16:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4212:1:61","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"4201:7:61","type":""}]},{"nodeType":"YulAssignment","src":"4222:16:61","value":{"name":"power_1","nodeType":"YulIdentifier","src":"4231:7:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4222:5:61"}]},{"nodeType":"YulAssignment","src":"4247:13:61","value":{"name":"_base","nodeType":"YulIdentifier","src":"4255:5:61"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"4247:4:61"}]},{"body":{"nodeType":"YulBlock","src":"4311:288:61","statements":[{"body":{"nodeType":"YulBlock","src":"4416:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4418:16:61"},"nodeType":"YulFunctionCall","src":"4418:18:61"},"nodeType":"YulExpressionStatement","src":"4418:18:61"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4331:4:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4341:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"base","nodeType":"YulIdentifier","src":"4409:4:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4337:3:61"},"nodeType":"YulFunctionCall","src":"4337:77:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4328:2:61"},"nodeType":"YulFunctionCall","src":"4328:87:61"},"nodeType":"YulIf","src":"4325:113:61"},{"body":{"nodeType":"YulBlock","src":"4477:29:61","statements":[{"nodeType":"YulAssignment","src":"4479:25:61","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"4492:5:61"},{"name":"base","nodeType":"YulIdentifier","src":"4499:4:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4488:3:61"},"nodeType":"YulFunctionCall","src":"4488:16:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4479:5:61"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4458:8:61"},{"name":"power_1","nodeType":"YulIdentifier","src":"4468:7:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4454:3:61"},"nodeType":"YulFunctionCall","src":"4454:22:61"},"nodeType":"YulIf","src":"4451:55:61"},{"nodeType":"YulAssignment","src":"4519:23:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4531:4:61"},{"name":"base","nodeType":"YulIdentifier","src":"4537:4:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4527:3:61"},"nodeType":"YulFunctionCall","src":"4527:15:61"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"4519:4:61"}]},{"nodeType":"YulAssignment","src":"4555:34:61","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"4571:7:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"4580:8:61"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4567:3:61"},"nodeType":"YulFunctionCall","src":"4567:22:61"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"4555:8:61"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4280:8:61"},{"name":"power_1","nodeType":"YulIdentifier","src":"4290:7:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4277:2:61"},"nodeType":"YulFunctionCall","src":"4277:21:61"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4299:3:61","statements":[]},"pre":{"nodeType":"YulBlock","src":"4273:3:61","statements":[]},"src":"4269:330:61"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"4151:5:61","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"4158:8:61","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"4171:5:61","type":""},{"name":"base","nodeType":"YulTypedName","src":"4178:4:61","type":""}],"src":"4123:482:61"},{"body":{"nodeType":"YulBlock","src":"4669:807:61","statements":[{"body":{"nodeType":"YulBlock","src":"4707:52:61","statements":[{"nodeType":"YulAssignment","src":"4721:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4730:1:61","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4721:5:61"}]},{"nodeType":"YulLeave","src":"4744:5:61"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4689:8:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4682:6:61"},"nodeType":"YulFunctionCall","src":"4682:16:61"},"nodeType":"YulIf","src":"4679:80:61"},{"body":{"nodeType":"YulBlock","src":"4792:52:61","statements":[{"nodeType":"YulAssignment","src":"4806:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4815:1:61","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4806:5:61"}]},{"nodeType":"YulLeave","src":"4829:5:61"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4778:4:61"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4771:6:61"},"nodeType":"YulFunctionCall","src":"4771:12:61"},"nodeType":"YulIf","src":"4768:76:61"},{"cases":[{"body":{"nodeType":"YulBlock","src":"4880:52:61","statements":[{"nodeType":"YulAssignment","src":"4894:10:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4903:1:61","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4894:5:61"}]},{"nodeType":"YulLeave","src":"4917:5:61"}]},"nodeType":"YulCase","src":"4873:59:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4878:1:61","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"4948:123:61","statements":[{"body":{"nodeType":"YulBlock","src":"4983:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4985:16:61"},"nodeType":"YulFunctionCall","src":"4985:18:61"},"nodeType":"YulExpressionStatement","src":"4985:18:61"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4968:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"4978:3:61","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4965:2:61"},"nodeType":"YulFunctionCall","src":"4965:17:61"},"nodeType":"YulIf","src":"4962:43:61"},{"nodeType":"YulAssignment","src":"5018:25:61","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"5031:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"5041:1:61","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5027:3:61"},"nodeType":"YulFunctionCall","src":"5027:16:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"5018:5:61"}]},{"nodeType":"YulLeave","src":"5056:5:61"}]},"nodeType":"YulCase","src":"4941:130:61","value":{"kind":"number","nodeType":"YulLiteral","src":"4946:1:61","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"4860:4:61"},"nodeType":"YulSwitch","src":"4853:218:61"},{"body":{"nodeType":"YulBlock","src":"5169:70:61","statements":[{"nodeType":"YulAssignment","src":"5183:28:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"5196:4:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"5202:8:61"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"5192:3:61"},"nodeType":"YulFunctionCall","src":"5192:19:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"5183:5:61"}]},{"nodeType":"YulLeave","src":"5224:5:61"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"5093:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"5099:2:61","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5090:2:61"},"nodeType":"YulFunctionCall","src":"5090:12:61"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"5107:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"5117:2:61","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5104:2:61"},"nodeType":"YulFunctionCall","src":"5104:16:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5086:3:61"},"nodeType":"YulFunctionCall","src":"5086:35:61"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"5130:4:61"},{"kind":"number","nodeType":"YulLiteral","src":"5136:3:61","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5127:2:61"},"nodeType":"YulFunctionCall","src":"5127:13:61"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"5145:8:61"},{"kind":"number","nodeType":"YulLiteral","src":"5155:2:61","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5142:2:61"},"nodeType":"YulFunctionCall","src":"5142:16:61"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5123:3:61"},"nodeType":"YulFunctionCall","src":"5123:36:61"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5083:2:61"},"nodeType":"YulFunctionCall","src":"5083:77:61"},"nodeType":"YulIf","src":"5080:159:61"},{"nodeType":"YulVariableDeclaration","src":"5248:57:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"5290:4:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"5296:8:61"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"5271:18:61"},"nodeType":"YulFunctionCall","src":"5271:34:61"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"5252:7:61","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"5261:6:61","type":""}]},{"body":{"nodeType":"YulBlock","src":"5410:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5412:16:61"},"nodeType":"YulFunctionCall","src":"5412:18:61"},"nodeType":"YulExpressionStatement","src":"5412:18:61"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"5320:7:61"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5333:66:61","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"base_1","nodeType":"YulIdentifier","src":"5401:6:61"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5329:3:61"},"nodeType":"YulFunctionCall","src":"5329:79:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5317:2:61"},"nodeType":"YulFunctionCall","src":"5317:92:61"},"nodeType":"YulIf","src":"5314:118:61"},{"nodeType":"YulAssignment","src":"5441:29:61","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"5454:7:61"},{"name":"base_1","nodeType":"YulIdentifier","src":"5463:6:61"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5450:3:61"},"nodeType":"YulFunctionCall","src":"5450:20:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"5441:5:61"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"4640:4:61","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"4646:8:61","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"4659:5:61","type":""}],"src":"4610:866:61"},{"body":{"nodeType":"YulBlock","src":"5551:61:61","statements":[{"nodeType":"YulAssignment","src":"5561:45:61","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"5591:4:61"},{"name":"exponent","nodeType":"YulIdentifier","src":"5597:8:61"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"5570:20:61"},"nodeType":"YulFunctionCall","src":"5570:36:61"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"5561:5:61"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"5522:4:61","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"5528:8:61","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"5541:5:61","type":""}],"src":"5481:131:61"},{"body":{"nodeType":"YulBlock","src":"5666:76:61","statements":[{"body":{"nodeType":"YulBlock","src":"5688:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5690:16:61"},"nodeType":"YulFunctionCall","src":"5690:18:61"},"nodeType":"YulExpressionStatement","src":"5690:18:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5682:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"5685:1:61"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5679:2:61"},"nodeType":"YulFunctionCall","src":"5679:8:61"},"nodeType":"YulIf","src":"5676:34:61"},{"nodeType":"YulAssignment","src":"5719:17:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5731:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"5734:1:61"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5727:3:61"},"nodeType":"YulFunctionCall","src":"5727:9:61"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5719:4:61"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5648:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"5651:1:61","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"5657:4:61","type":""}],"src":"5617:125:61"},{"body":{"nodeType":"YulBlock","src":"5795:80:61","statements":[{"body":{"nodeType":"YulBlock","src":"5822:22:61","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5824:16:61"},"nodeType":"YulFunctionCall","src":"5824:18:61"},"nodeType":"YulExpressionStatement","src":"5824:18:61"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5811:1:61"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5818:1:61"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5814:3:61"},"nodeType":"YulFunctionCall","src":"5814:6:61"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5808:2:61"},"nodeType":"YulFunctionCall","src":"5808:13:61"},"nodeType":"YulIf","src":"5805:39:61"},{"nodeType":"YulAssignment","src":"5853:16:61","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5864:1:61"},{"name":"y","nodeType":"YulIdentifier","src":"5867:1:61"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5860:3:61"},"nodeType":"YulFunctionCall","src":"5860:9:61"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5853:3:61"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5778:1:61","type":""},{"name":"y","nodeType":"YulTypedName","src":"5781:1:61","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5787:3:61","type":""}],"src":"5747:128:61"}]},"contents":"{\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_bytes32t_uint8t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value1 := value\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        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\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_encode_tuple_t_stringliteral_df13bd9d8a33902bf0e6a91ac16a6f6fe3944749e39401c7e12401be7ab8953e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"OZUUPSUpdater: caller is not adm\")\n        mstore(add(headStart, 96), \"in\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c27596859fcb6ead2837c73c7dd7816b298d256d48959cdfafbf2d8dcd5da49f__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), \"OZUUPSUpdater: must not be calle\")\n        mstore(add(headStart, 96), \"d through delegatecall\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8a87116b0fee1cb0ad524fb7d27f9621f4b6a5590072867ea9f9e0287abbba24__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), \"ProxyUpdater: value is too large\")\n        tail := add(headStart, 96)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))\n        }\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        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_mul_t_uint8(x, y) -> product\n    {\n        let x_1 := and(x, 0xff)\n        let y_1 := and(y, 0xff)\n        if and(iszero(iszero(x_1)), gt(y_1, div(0xff, x_1))) { panic_error_0x11() }\n        product := mul(x_1, y_1)\n    }\n    function checked_exp_helper(_base, exponent) -> power, base\n    {\n        let power_1 := 1\n        power := power_1\n        base := _base\n        for { } gt(exponent, power_1) { }\n        {\n            if gt(base, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, base)) { panic_error_0x11() }\n            if and(exponent, power_1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(power_1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent)\n        if gt(power_1, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, exponent)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n}","id":61,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9992":[{"length":32,"start":718}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c806352d1902d1161005057806352d1902d1461009457806366aa56c5146100ae57806393af0292146100b657600080fd5b80631ea947021461006c5780633659cfe614610081575b600080fd5b61007f61007a3660046106c0565b6100c9565b005b61007f61008f3660046107b1565b6101c3565b61009c6102b4565b60405190815260200160405180910390f35b61007f6103a0565b61007f6100c43660046107b1565b61040e565b7fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610122575033155b6101b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d60448201527f696e00000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101be83838361051c565b505050565b7fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061021c575033155b6102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d60448201527f696e00000000000000000000000000000000000000000000000000000000000060648201526084016101aa565b6102b181610629565b50565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4f5a55555053557064617465723a206d757374206e6f742062652063616c6c6560448201527f64207468726f7567682064656c656761746563616c6c0000000000000000000060648201526084016101aa565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b336103c97fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955490565b73ffffffffffffffffffffffffffffffffffffffff161461040c5761040c337fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c3499555565b565b7fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c349955473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610467575033155b6104f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4f5a55555053557064617465723a2063616c6c6572206973206e6f742061646d60448201527f696e00000000000000000000000000000000000000000000000000000000000060648201526084016101aa565b6102a860007fadf644ee9e2068b2c186f6b9a2f688d3450c4110b8018da281fbbd8aa6c3499555565b602081511115610588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f50726f7879557064617465723a2076616c756520697320746f6f206c6172676560448201526064016101aa565b6000610593826107ee565b905081516020036105a657808455610623565b835482516000906105b8906008610844565b905060006105c7866008610863565b60ff16905060008160016105dc85600261096e565b6105e6919061097a565b901b1990508381166000846105fd8561010061097a565b610607919061097a565b905086811c60006106188285610991565b8c5550505050505050505b50505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156106d557600080fd5b83359250602084013560ff811681146106ed57600080fd5b9150604084013567ffffffffffffffff8082111561070a57600080fd5b818601915086601f83011261071e57600080fd5b81358181111561073057610730610691565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561077657610776610691565b8160405282815289602084870101111561078f57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156107c357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107e757600080fd5b9392505050565b8051602080830151919081101561080f576000198160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600081600019048311821515161561085e5761085e610815565b500290565b600060ff821660ff84168160ff048111821515161561088457610884610815565b029392505050565b600181815b808511156108c75781600019048211156108ad576108ad610815565b808516156108ba57918102915b93841c9390800290610891565b509250929050565b6000826108de57506001610968565b816108eb57506000610968565b8160018114610901576002811461090b57610927565b6001915050610968565b60ff84111561091c5761091c610815565b50506001821b610968565b5060208310610133831016604e8410600b841016171561094a575081810a610968565b610954838361088c565b806000190482111561088457610884610815565b92915050565b60006107e783836108cf565b60008282101561098c5761098c610815565b500390565b600082198211156109a4576109a4610815565b50019056fea164736f6c634300080f000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x52D1902D GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x52D1902D EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x66AA56C5 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x93AF0292 EQ PUSH2 0xB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1EA94702 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x6C0 JUMP JUMPDEST PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x1C3 JUMP JUMPDEST PUSH2 0x9C PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0x3A0 JUMP JUMPDEST PUSH2 0x7F PUSH2 0xC4 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x122 JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x1B3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A2063616C6C6572206973206E6F742061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BE DUP4 DUP4 DUP4 PUSH2 0x51C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x21C JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x2A8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A2063616C6C6572206973206E6F742061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x2B1 DUP2 PUSH2 0x629 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A206D757374206E6F742062652063616C6C65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x64207468726F7567682064656C656761746563616C6C00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1AA JUMP JUMPDEST POP PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SWAP1 JUMP JUMPDEST CALLER PUSH2 0x3C9 PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x40C JUMPI PUSH2 0x40C CALLER PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SSTORE JUMP JUMPDEST JUMP JUMPDEST PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x467 JUMPI POP CALLER ISZERO JUMPDEST PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F5A55555053557064617465723A2063616C6C6572206973206E6F742061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x2A8 PUSH1 0x0 PUSH32 0xADF644EE9E2068B2C186F6B9A2F688D3450C4110B8018DA281FBBD8AA6C34995 SSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD GT ISZERO PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x50726F7879557064617465723A2076616C756520697320746F6F206C61726765 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x593 DUP3 PUSH2 0x7EE JUMP JUMPDEST SWAP1 POP DUP2 MLOAD PUSH1 0x20 SUB PUSH2 0x5A6 JUMPI DUP1 DUP5 SSTORE PUSH2 0x623 JUMP JUMPDEST DUP4 SLOAD DUP3 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x5B8 SWAP1 PUSH1 0x8 PUSH2 0x844 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5C7 DUP7 PUSH1 0x8 PUSH2 0x863 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH2 0x5DC DUP6 PUSH1 0x2 PUSH2 0x96E JUMP JUMPDEST PUSH2 0x5E6 SWAP2 SWAP1 PUSH2 0x97A JUMP JUMPDEST SWAP1 SHL NOT SWAP1 POP DUP4 DUP2 AND PUSH1 0x0 DUP5 PUSH2 0x5FD DUP6 PUSH2 0x100 PUSH2 0x97A JUMP JUMPDEST PUSH2 0x607 SWAP2 SWAP1 PUSH2 0x97A JUMP JUMPDEST SWAP1 POP DUP7 DUP2 SHR PUSH1 0x0 PUSH2 0x618 DUP3 DUP6 PUSH2 0x991 JUMP JUMPDEST DUP13 SSTORE POP POP POP POP POP POP POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 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 0x6D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x6ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x730 JUMPI PUSH2 0x730 PUSH2 0x691 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 0x776 JUMPI PUSH2 0x776 PUSH2 0x691 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x78F 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 0x7C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x7E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x80F JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x85E JUMPI PUSH2 0x85E PUSH2 0x815 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP5 AND DUP2 PUSH1 0xFF DIV DUP2 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x884 JUMPI PUSH2 0x884 PUSH2 0x815 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH2 0x8C7 JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x8AD JUMPI PUSH2 0x8AD PUSH2 0x815 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH2 0x8BA JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH2 0x891 JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x8DE JUMPI POP PUSH1 0x1 PUSH2 0x968 JUMP JUMPDEST DUP2 PUSH2 0x8EB JUMPI POP PUSH1 0x0 PUSH2 0x968 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x901 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x90B JUMPI PUSH2 0x927 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x968 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x91C JUMPI PUSH2 0x91C PUSH2 0x815 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x94A JUMPI POP DUP2 DUP2 EXP PUSH2 0x968 JUMP JUMPDEST PUSH2 0x954 DUP4 DUP4 PUSH2 0x88C JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH2 0x884 JUMPI PUSH2 0x884 PUSH2 0x815 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7E7 DUP4 DUP4 PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x98C JUMPI PUSH2 0x98C PUSH2 0x815 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x9A4 JUMPI PUSH2 0x9A4 PUSH2 0x815 JUMP JUMPDEST POP ADD SWAP1 JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"584:4990:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4432:190;;;;;;:::i;:::-;;:::i;:::-;;2897:123;;;;;;:::i;:::-;;:::i;4220:112::-;;;:::i;:::-;;;1873:25:61;;;1861:2;1846:18;4220:112:57;;;;;;;3135:142;;;:::i;3561:163::-;;;;;;:::i;:::-;;:::i;4432:190::-;5503:20;5497:27;2162:35;;:10;:35;;;:63;;;-1:-1:-1;2201:10:57;:24;2162:63;2141:144;;;;;;;2111:2:61;2141:144:57;;;2093:21:61;2150:2;2130:18;;;2123:30;2189:34;2169:18;;;2162:62;2260:4;2240:18;;;2233:32;2282:19;;2141:144:57;;;;;;;;;4576:39:::1;4593:4;4599:7;4608:6;4576:16;:39::i;:::-;4432:190:::0;;;:::o;2897:123::-;5503:20;5497:27;2162:35;;:10;:35;;;:63;;;-1:-1:-1;2201:10:57;:24;2162:63;2141:144;;;;;;;2111:2:61;2141:144:57;;;2093:21:61;2150:2;2130:18;;;2123:30;2189:34;2169:18;;;2162:62;2260:4;2240:18;;;2233:32;2282:19;;2141:144:57;1909:398:61;2141:144:57;2978:35:::1;2997:15;2978:18;:35::i;:::-;2897:123:::0;:::o;4220:112::-;4281:7;2584:4;2576:29;2593:12;2576:29;;2555:130;;;;;;;2514:2:61;2555:130:57;;;2496:21:61;2553:2;2533:18;;;2526:30;2592:34;2572:18;;;2565:62;2663:24;2643:18;;;2636:52;2705:19;;2555:130:57;2312:418:61;2555:130:57;-1:-1:-1;857:66:57::1;4220:112:::0;:::o;3135:142::-;3203:10;3178:21;5503:20;5497:27;;5349:223;3178:21;:35;;;3174:97;;3229:31;3249:10;5179:20;5172:39;5082:145;3229:31;3135:142::o;3561:163::-;5503:20;5497:27;2162:35;;:10;:35;;;:63;;;-1:-1:-1;2201:10:57;:24;2162:63;2141:144;;;;;;;2111:2:61;2141:144:57;;;2093:21:61;2150:2;2130:18;;;2123:30;2189:34;2169:18;;;2162:62;2260:4;2240:18;;;2233:32;2282:19;;2141:144:57;1909:398:61;2141:144:57;3641:31:::1;3669:1;5179:20:::0;5172:39;5082:145;2283:2153:58;2403:2;2386:6;:13;:19;;2378:64;;;;;;;2937:2:61;2378:64:58;;;2919:21:61;;;2956:18;;;2949:30;3015:34;2995:18;;;2988:62;3067:18;;2378:64:58;2735:356:61;2378:64:58;2453:20;2476:15;2484:6;2476:15;:::i;:::-;2453:38;;2639:6;:13;2656:2;2639:19;2635:1795;;2714:12;2708:4;2701:26;2635:1795;;;2891:11;;3042:13;;2824:15;;3042:17;;3058:1;3042:17;:::i;:::-;3016:43;-1:-1:-1;3073:18:58;3094:11;:7;3104:1;3094:11;:::i;:::-;3073:32;;;-1:-1:-1;3520:12:58;3073:32;3563:1;3538:22;3544:15;3538:1;:22;:::i;:::-;:26;;;;:::i;:::-;3537:42;;3535:45;;-1:-1:-1;3689:23:58;;;3665:21;3912:15;3893:16;3899:10;3893:3;:16;:::i;:::-;:34;;;;:::i;:::-;3868:59;-1:-1:-1;4058:30:58;;;4029:25;4239:51;4058:30;4247:13;4239:51;:::i;:::-;4386:20;;-1:-1:-1;;;;;;;;2635:1795:58;2368:2068;2283:2153;;;:::o;4757:194:57:-;4859:18;4852:43;;;4919:25;;;;;;;;;;;4757:194;:::o;14:184:61:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1205;287:6;295;303;356:2;344:9;335:7;331:23;327:32;324:52;;;372:1;369;362:12;324:52;408:9;395:23;385:33;;468:2;457:9;453:18;440:32;512:4;505:5;501:16;494:5;491:27;481:55;;532:1;529;522:12;481:55;555:5;-1:-1:-1;611:2:61;596:18;;583:32;634:18;664:14;;;661:34;;;691:1;688;681:12;661:34;729:6;718:9;714:22;704:32;;774:7;767:4;763:2;759:13;755:27;745:55;;796:1;793;786:12;745:55;832:2;819:16;854:2;850;847:10;844:36;;;860:18;;:::i;:::-;994:2;988:9;1056:4;1048:13;;899:66;1044:22;;;1068:2;1040:31;1036:40;1024:53;;;1092:18;;;1112:22;;;1089:46;1086:72;;;1138:18;;:::i;:::-;1178:10;1174:2;1167:22;1213:2;1205:6;1198:18;1253:7;1248:2;1243;1239;1235:11;1231:20;1228:33;1225:53;;;1274:1;1271;1264:12;1225:53;1330:2;1325;1321;1317:11;1312:2;1304:6;1300:15;1287:46;1375:1;1370:2;1365;1357:6;1353:15;1349:24;1342:35;1396:6;1386:16;;;;;;;203:1205;;;;;:::o;1413:309::-;1472:6;1525:2;1513:9;1504:7;1500:23;1496:32;1493:52;;;1541:1;1538;1531:12;1493:52;1580:9;1567:23;1630:42;1623:5;1619:54;1612:5;1609:65;1599:93;;1688:1;1685;1678:12;1599:93;1711:5;1413:309;-1:-1:-1;;;1413:309:61:o;3096:357::-;3214:12;;3261:4;3250:16;;;3244:23;;3214:12;3279:16;;3276:171;;;-1:-1:-1;;3359:6:61;3353:4;3349:17;3346:1;3342:25;3338:98;3331:5;3327:110;3318:119;;3276:171;;3096:357;;;:::o;3458:184::-;3510:77;3507:1;3500:88;3607:4;3604:1;3597:15;3631:4;3628:1;3621:15;3647:228;3687:7;3813:1;-1:-1:-1;;3741:74:61;3738:1;3735:81;3730:1;3723:9;3716:17;3712:105;3709:131;;;3820:18;;:::i;:::-;-1:-1:-1;3860:9:61;;3647:228::o;3880:238::-;3918:7;3958:4;3955:1;3951:12;3990:4;3987:1;3983:12;4050:3;4044:4;4040:14;4035:3;4032:23;4025:3;4018:11;4011:19;4007:49;4004:75;;;4059:18;;:::i;:::-;4099:13;;3880:238;-1:-1:-1;;;3880:238:61:o;4123:482::-;4212:1;4255:5;4212:1;4269:330;4290:7;4280:8;4277:21;4269:330;;;4409:4;-1:-1:-1;;4337:77:61;4331:4;4328:87;4325:113;;;4418:18;;:::i;:::-;4468:7;4458:8;4454:22;4451:55;;;4488:16;;;;4451:55;4567:22;;;;4527:15;;;;4269:330;;;4273:3;4123:482;;;;;:::o;4610:866::-;4659:5;4689:8;4679:80;;-1:-1:-1;4730:1:61;4744:5;;4679:80;4778:4;4768:76;;-1:-1:-1;4815:1:61;4829:5;;4768:76;4860:4;4878:1;4873:59;;;;4946:1;4941:130;;;;4853:218;;4873:59;4903:1;4894:10;;4917:5;;;4941:130;4978:3;4968:8;4965:17;4962:43;;;4985:18;;:::i;:::-;-1:-1:-1;;5041:1:61;5027:16;;5056:5;;4853:218;;5155:2;5145:8;5142:16;5136:3;5130:4;5127:13;5123:36;5117:2;5107:8;5104:16;5099:2;5093:4;5090:12;5086:35;5083:77;5080:159;;;-1:-1:-1;5192:19:61;;;5224:5;;5080:159;5271:34;5296:8;5290:4;5271:34;:::i;:::-;5401:6;-1:-1:-1;;5329:79:61;5320:7;5317:92;5314:118;;;5412:18;;:::i;4610:866::-;;;;;:::o;5481:131::-;5541:5;5570:36;5597:8;5591:4;5570:36;:::i;5617:125::-;5657:4;5685:1;5682;5679:8;5676:34;;;5690:18;;:::i;:::-;-1:-1:-1;5727:9:61;;5617:125::o;5747:128::-;5787:3;5818:1;5814:6;5811:1;5808:13;5805:39;;;5824:18;;:::i;:::-;-1:-1:-1;5860:9:61;;5747:128::o"},"methodIdentifiers":{"complete(address)":"93af0292","initiate()":"66aa56c5","proxiableUUID()":"52d1902d","setStorage(bytes32,uint8,bytes)":"1ea94702","upgradeTo(address)":"3659cfe6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"complete\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initiate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Upgraded(address)\":{\"params\":{\"implementation\":\"The address of the implementation contract\"}}},\"kind\":\"dev\",\"methods\":{\"complete(address)\":{\"params\":{\"_implementation\":\"Address of the implementation contract.\"}},\"proxiableUUID()\":{\"returns\":{\"_0\":\"The storage slot of the implementation.\"}},\"setStorage(bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] bytes (inclusive).\"}},\"upgradeTo(address)\":{\"params\":{\"_implementation\":\"Address of the implementation contract.\"}}},\"title\":\"OZUUPSUdater\",\"version\":1},\"userdoc\":{\"events\":{\"Upgraded(address)\":{\"notice\":\"An event that is emitted each time the implementation is changed. This event is part         of the EIP-1967 specification.\"}},\"kind\":\"user\",\"methods\":{\"complete(address)\":{\"notice\":\"Completes an upgrade by setting the ChugSplash admin to address(0) and setting the proxy's implementation to a new address. Only callable by the ChugSplash admin.\"},\"initiate()\":{\"notice\":\"Initiates an upgrade by setting the ChugSplash admin to the caller's address.\"},\"proxiableUUID()\":{\"notice\":\"Implementation of the ERC1822 `proxiableUUID` function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. Since this function is only meant to be available on an implementation contract, it must revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setStorage(bytes32,uint8,bytes)\":{\"notice\":\"Only callable by the ChugSplash admin.\"},\"upgradeTo(address)\":{\"notice\":\"Set the implementation contract address. Only callable by the ChugSplash admin.\"}},\"notice\":\"Proxy updater that works with OpenZeppelin UUPS proxies. This contract uses a special storage slot key called the `CHUGSPLASH_ADMIN_KEY` which stores the owner address for the duration of the upgrade. This is a convenient way to keep track of the admin during the upgrade because OpenZeppelin UUPS proxies do not have a standard ownership mechanism. When the upgrade is finished, this key is set back to address(0).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/updaters/OZUUPSUpdater.sol\":\"OZUUPSUpdater\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]},\"contracts/updaters/OZUUPSUpdater.sol\":{\"keccak256\":\"0xdcbbfc4e544c811a9ae1a5436b1d43ab59926766c4442c93746757bdd1a7fbcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a75f8e1d484e4c5b05116c233f71f42f0498200599a6d84bb7f7aac3b4a2a145\",\"dweb:/ipfs/QmUTQHPxWHtZtMZ17KewyqZy76Eunr1RgQqvREMV23vW6W\"]},\"contracts/updaters/ProxyUpdater.sol\":{\"keccak256\":\"0x7fd8c8b7f1f5eb437bc7f6217a6385c60227c8af7a7c8ac3bd9f69824f232405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1527f8ba378dd9134bac0c537e2b8c3a24acd0bb43c654780b5925a2c949f748\",\"dweb:/ipfs/QmZC5KLDySGoZxHf2uPbb5MEWh66hp7DJJjCLzG2PZBD5Y\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/updaters/ProxyUpdater.sol":{"ProxyUpdater":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint8","name":"_offset","type":"uint8"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"setStorage(bytes32,uint8,bytes)":"1ea94702"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_offset\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_value\",\"type\":\"bytes\"}],\"name\":\"setStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"setStorage(bytes32,uint8,bytes)\":{\"params\":{\"_key\":\"Storage slot key to modify.\",\"_offset\":\"Bytes offset of the new storage slot value from the right side of the storage slot. An offset of 0 means the new value will start at the right-most byte of the storage slot.\",\"_value\":\"New value of the storage slot at the given key and offset. The length of the value is in the range [1, 32] bytes (inclusive).\"}}},\"title\":\"ProxyUpdater\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setStorage(bytes32,uint8,bytes)\":{\"notice\":\"Sets a proxy's storage slot value at a given storage slot key and offset. Note that this will thrown an error if the length of the storage slot value plus the offset (both in bytes) is greater than 32.         To illustrate how this function works, consider the following example. Say we call         this function on some storage slot key with the input parameters:         `_offset = 2`         `_value = 0x22222222`         Say the storage slot value prior to calling this function is:         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC         This function works by creating a bit mask at the location of the value, which in         this case is at an `offset` of 2 and is 4 bytes long (extending left from the         offset). The bit mask would be:         0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFF         Applying this bit mask to the existing slot value, we get:         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC00000000CCCC         Then, we offset the new value to the correct location in the storage slot:         0x0000000000000000000000000000000000000000000000000000222222220000         Lastly, add these two values together to get the new storage slot value:         0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC22222222CCCC\"}},\"notice\":\"An abstract contract for setting storage slot values within a proxy at a given storage slot key and offset.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/updaters/ProxyUpdater.sol\":\"ProxyUpdater\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IProxyUpdater.sol\":{\"keccak256\":\"0x7278de0b60b1bc380978e5c922c496261c4e3e2e525c85d159fa176c8fea0725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fa4d995adcb8e962b69da7bf9d83394bde1fdcae30a9134a0c1bc176ba80a1\",\"dweb:/ipfs/QmZkhtPXXqqpPrad1AdBacjq3qK85B9wybsbCmRz8K1ak6\"]},\"contracts/updaters/ProxyUpdater.sol\":{\"keccak256\":\"0x7fd8c8b7f1f5eb437bc7f6217a6385c60227c8af7a7c8ac3bd9f69824f232405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1527f8ba378dd9134bac0c537e2b8c3a24acd0bb43c654780b5925a2c949f748\",\"dweb:/ipfs/QmZC5KLDySGoZxHf2uPbb5MEWh66hp7DJJjCLzG2PZBD5Y\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"solmate/src/utils/Bytes32AddressLib.sol":{"Bytes32AddressLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"248:311:59:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;248:311:59;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"248:311:59:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting between addresses and bytes32 values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"solmate/src/utils/Bytes32AddressLib.sol\":\"Bytes32AddressLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"solmate/src/utils/Bytes32AddressLib.sol\":{\"keccak256\":\"0xe709c9f2c6fb8bfe1158fa31967c0a2109844c52079fe4e327baec82fb87acb6\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://9633ab7c471e653dfb37c78b6475db47924c9ee731118545b5bc28aad97f2434\",\"dweb:/ipfs/Qmbt9gLb3hrs21nQxwSiG1ciE56Y73LLt1iPDfnmkcz27E\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"solmate/src/utils/CREATE3.sol":{"CREATE3":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"602d6037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH1 0x2D 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 LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"410:3768:60:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;410:3768:60;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c634300080f000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP EXP ","sourceMap":"410:3768:60:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Deploy to deterministic addresses without an initcode factor.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"solmate/src/utils/CREATE3.sol\":\"CREATE3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[]},\"sources\":{\"solmate/src/utils/Bytes32AddressLib.sol\":{\"keccak256\":\"0xe709c9f2c6fb8bfe1158fa31967c0a2109844c52079fe4e327baec82fb87acb6\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://9633ab7c471e653dfb37c78b6475db47924c9ee731118545b5bc28aad97f2434\",\"dweb:/ipfs/Qmbt9gLb3hrs21nQxwSiG1ciE56Y73LLt1iPDfnmkcz27E\"]},\"solmate/src/utils/CREATE3.sol\":{\"keccak256\":\"0x1d4ea6d2353ed117d7704ddf7488fcd39edb2d575351f6c64efd313170d74367\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://ea79e1a2a5950275ab628ecf628d0a60146435425f7841ad933c2a1f7e802022\",\"dweb:/ipfs/QmSy8eMrDY1VzCWyrjPbJcZCPQ1b4Lhtccdp9fupZrt6Yd\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}}}}}